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中的文件和目录操作实现代码
Mar 13 Python
python单例模式实例分析
Apr 08 Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 Python
python操作excel的方法
Aug 16 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
Dec 15 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
python实现多线程端口扫描
Aug 31 Python
使用python实现对元素的长截图功能
Nov 14 Python
pyspark 随机森林的实现
Apr 24 Python
Java byte数组操纵方式代码实例解析
Jul 22 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
python实现的各种排序算法代码
2013/03/04 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
2016/10/09 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
python输入中文的实例方法
2020/09/14 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
工艺员岗位职责
2014/02/11 职场文书
采购意向书范本
2014/03/31 职场文书
民生工作实施方案
2014/05/31 职场文书
文明社区申报材料
2014/08/21 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
海底两万里读书笔记
2015/06/26 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技