Virtualenv 搭建 Py项目运行环境的教程详解


Posted in Python onJune 22, 2020

小朋友你可能有很多问号~,上一小节不是已经一顿操作猛如虎搭建好 Python + PyCharm 可用开发环境了吗?为什么这节又来个项目运行环境?作者你是不是想搞事情...

Virtualenv 搭建 Py项目运行环境的教程详解

Virtualenv 简介

Virtualenv 搭建 Py项目运行环境的教程详解

淡定,事情是这样(试图狡辩):

首先 「 Virtualenv 」 是用于创建隔离的Python环境的工具。 那为什么需要隔离 不同项目的 Python 环境呢

由于 Python 被称为胶水语言,用途相当广泛。导致它的类库也五花八门,比如:

  • web开发,你需要安装 Flask,Djanjo...
  • 人工智能,你又需要 pytesseract,PIL...
  • 数据分析,你需要 numpy,Matplotlib...
  • 爬虫工程,你需要 Scrapy,Beautifulsoup...

更不用说还有 自动化运维,自动化测试... 不同使用场景之间使用的类库又不同版本要求,而且并不依赖,但Python的包却只能同时安装一个版本。所以一股脑地使用 pip 把 Python 类库都默认安装在 电脑全局环境上,时间久了 「 肯定会出问题 」

于是就有了 「 Virtualenv 」 这么一个为每一个项目创建一套 「 独立隔离 」 的Python运行环境的工具。

清晰明了,安全隔离,并且满足每个项目甚至阶段。管理不同的Python版本解释器和不同的类库的工具

既然用处这么大,我们赶紧迈出六亲不认的步伐 —— 学习怎么应用到实际开发

Virtualenv 搭建 Py项目运行环境的教程详解

安装 Virtualenv

我们可以进入 Virtualenv 的 Github 或者文档 查看说明,点击进入 installation(安装)

里面记录了各种可行的 Virtualenv 安装方法。

Virtualenv 搭建 Py项目运行环境的教程详解

由于 Python 是默认支持 pip 安装类库方式,所以这里我们选用第二种

pip install virtualenv

pip install -i https://pypi.douban.com/simple virtualenv (国内镜像速度较快)

事不宜迟,我们马上开始:

回到桌面,双击运行 PyCharm 等待 PyCharm 打开后,点击 底部菜单 Terminal 标签 运行命令行工具

Virtualenv 搭建 Py项目运行环境的教程详解

输入 pip install virtualenv 并回车执行,安装 virtualenv

# 安装 virtualenv 
D:\Dev\workplace\imooc>pip install virtualenv

# 通过 virtualenv --version 查看 virtualenv 版本号 和 安装路径
D:\Dev\workplace\imooc>virtualenv --version
virtualenv 20.0.18 from d:\dev\env\python3.7\lib\site-packages\virtualenv\__init__.py

如果遇到 pip 加载类库速度慢情况。是因为 pip 默认安装源在国外,更换为国内 pip 源就能加速。详情参照下面 国内 pip 源,加速类库安装 内容

至此 Virtualenv 已在全局环境中已经安装完成

创建 项目运行环境

Virtualenv 工具已经安装完了,那我们就来练练手给我们 imooc 项目建立 项目运行环境

建立 项目运行环境 的命令怎么写呢,遇事不决要么看文档,要不搜索,问人

我们先回到 Virtualenv文档 ,左侧菜单进入 用户指南 > 介绍 有这么一段

Virtualenv 搭建 Py项目运行环境的教程详解

于是我们就知道了,在 imooc 项目路径下 执行 virtualenv 。就能在 当前路径生成一个相同版本的python虚拟环境 venv

那问题又来了 —— 这些都是默认的,如果我需要 「 指定目录下 」 生成 「 指定 python 版本 」 的虚拟环境 怎么办?

我们从刚才的 用户指南 > 介绍 中继续读下去,就有这么一句

命令行工具具有许多用于修改组件行为的标志,有关完整列表,请确保检出 CLI标志 。

翻译得不太准确哈,正确意译过来是:

命令行工具 (virtualenv) 中有很多命令设置选项,完整的配置请查阅 CLI选项列表 。

那我们就点击进去看一下吧,发现其中的

  • dest :在该目录下创建 virtualenv
  • -p, --python :为创建虚拟环境指定 Python 解释器(需要绝对路径)

这不就是我们要找的嘛

Virtualenv 搭建 Py项目运行环境的教程详解

所以我们创建 imooc 项目运行环境,应该这么写 virtualenv D:\Dev\env\imooc_venv -p D:\Dev\env\Python3.7\python.exe`,执行情况如下

D:\Dev\workplace\imooc>virtualenv D:\Dev\env\imooc_venv -p D:\Dev\env\Python3.7\python.exe
created virtual environment CPython3.7.7.final.0-64 in 406ms
 creator CPython3Windows(dest=D:\Dev\env\imooc_venv, clear=False, global=False)
 seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\Abo\A
ppData\Local\pypa\virtualenv\seed-app-data\v1.0.1)
 activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

D:\Dev\workplace\imooc>

查看路径 D:\Dev\env 下就有了 我们刚刚创建的 imooc_venv 项目运行环境

Virtualenv 搭建 Py项目运行环境的教程详解

PyCharm 结合 Virtualenv 使用

我们上一小节知道,项目的 Python 执行环境,在创建项目时就已经指定了。

当我们创建好新的项目运行环境是该如何设置呢?

我们回到 PyCharm,点击它的头部菜单栏 File > Setting

Virtualenv 搭建 Py项目运行环境的教程详解

选择 Project: imooc (imooc 项目设置) > Python Interperter (项目解析器) > Show All (展开所有)

Virtualenv 搭建 Py项目运行环境的教程详解

添加虚拟环境 > Existing environment(已存在环境)> 选中 虚拟环境路径下的 python.exe 文件, 确定更新

本课程的路径是 D:\Dev\env\imooc_venv\Scripts\python.exe

Virtualenv 搭建 Py项目运行环境的教程详解

等环境重新加载完成后,External Libraries(外部依赖类库)会变成 「 imooc_venv 」 ; 重启 Terminal (PyCharm 命令行工具)会加上 (imooc_venv) 代表在虚拟环境中

Virtualenv 搭建 Py项目运行环境的教程详解

这里又有个小问题,正常进入 D:\Dev\workplace\imooc 路径是没有进入虚拟环境,不会带有 (imooc_venv) 。要怎样才能进入/退出呢

Virtualenv 搭建 Py项目运行环境的教程详解

进入/退出虚拟环境

遇事不决查virtualenv 文档 ,里面的介绍就有这么一段

总结下来就是 [venv]\Scripts\activate:激活虚拟环境;[venv]\Scripts\deactivate.bat:注销虚拟环境;

Virtualenv 搭建 Py项目运行环境的教程详解

C:\Users\Abo>d:

D:\>cd \Dev\workplace\imooc

# 启动虚拟环境
D:\Dev\workplace\imooc>D:\Dev\env\imooc_venv\Scripts\activate

# 退出虚拟环境
(imooc_venv) D:\Dev\workplace\imooc>D:\Dev\env\imooc_venv\Scripts\deactivate.bat
D:\Dev\workplace\imooc>

至此 imooc 项目 Python 虚拟环境安装完成,ღ( ´・ᴗ・` )比心

Virtualenv 搭建 Py项目运行环境的教程详解

国内 pip 源,加速类库安装

如果遇到 pip 下载速度慢,可以考虑换国内其他源镜像

国内 pip 源:

  • 清华:https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里云:https://mirrors.aliyun.com/pypi/simple
  • 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
  • 豆瓣:https://pypi.douban.com/simple

临时使用 格式为:pip install -i 国内源网址 模块名

例如:pip install -i https://pypi.douban.com/simple urllib3

说明:使用 豆瓣 源,加速安装 urllib3 模块

总结

到此这篇关于Virtualenv 搭建 Py项目运行环境的文章就介绍到这了,更多相关Virtualenv 搭建 Py项目运行环境内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python list操作用法总结
Nov 10 Python
深入学习Python中的装饰器使用
Jun 20 Python
Python使用try except处理程序异常的三种常用方法分析
Sep 05 Python
python判断文件是否存在,不存在就创建一个的实例
Feb 18 Python
Python匿名函数及应用示例
Apr 09 Python
Django 路由控制的实现
Jul 17 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
40行Python代码实现天气预报和每日鸡汤推送功能
Feb 27 Python
将python字符串转化成长表达式的函数eval实例
May 11 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 Python
终于搞懂了Keras中multiloss的对应关系介绍
Jun 22 #Python
keras 多任务多loss实例
Jun 22 #Python
python对execl 处理操作代码
Jun 22 #Python
Python select及selectors模块概念用法详解
Jun 22 #Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 #Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 #Python
Python Excel vlookup函数实现过程解析
Jun 22 #Python
You might like
PHP安全编程之加密功能
2006/10/09 PHP
PHP 的几个配置文件函数
2006/12/21 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
javascript History对象原理解析
2020/02/17 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
Python 字符串换行的多种方式
2018/09/06 Python
PyQt5实现简易计算器
2020/05/30 Python
python aiohttp的使用详解
2019/06/20 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python编程的核心知识点总结
2021/02/08 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
入党积极分子介绍信
2014/01/17 职场文书
会计专业求职信范文
2014/03/16 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
2014年药店店长工作总结
2014/11/17 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
运动会广播稿50字
2015/08/19 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏