python virtualenv虚拟环境配置与使用教程详解


Posted in Python onJuly 13, 2020

概述

python开发过程中,我们可能需要同时开发多款应用,这些应用可能公用同一个版本的Python程序,但是使用不同版本的第三方库,比如A应用使用six 1.12.0,而B应用需要使用six 1.15.0。这种情况下,virtualenv就派上用场了,它能为每个应用提供一套“相对独立”的Python虚拟运行环境。

注意,这里为啥是“相对独立”而不是“绝对独立”呢?针对一些.exe依赖程序,默认安装时,不会安装在虚拟环境中,安装后为各个应用共享,参考网络资料说要改注册表才可以。

虚拟环境配置与使用

测试环境

win10

python3.5

python3.6

virtualevn 20.0.23

虚拟环境配置

1. 安装virtualenv

pip install virtualenv

说明:这里的pip使用哪个python版本关联的pip(如果系统有多个python版本),取决于你系统环境变量配置

安装完后可以查看virtualenv.exe所在路径

where virtualenv

python virtualenv虚拟环境配置与使用教程详解

说明:如上图,实践时发现,执行pip install virtualenv命令后,根据path系统环境变量能找到的所有python都装上了virtualenv

安装完后可以通过where查看virtualenv.exe所在路径

在Python3.4之前,virtualenv需要独立手动安装后,方可执行。之后的版本中,Python自带了一个venv库,执行python ?m venv就可以达到与virtalenv同样的效果。更多的用户习惯上还是使用virtualenv的方式。

下面我安装的是16.0.4版本的virtualenv。更高版本的下面有一定说明,请注意区别。

2. 创建虚拟环境

创建一个总目录,用于管理所有虚拟环境。

C:\Users\cassmall>cd /d d:

D:\>mkdir d:\PythonVirtualenvs

D:\>set path=D:\Program Files\Python35\Scripts\virtualenv.exe;%path%

D:\>virtualenv -p "D:\Program Files\Python35\python.exe" d:\PythonVirtualenvs\oldAutotestingPlatform

created virtual environment CPython3.5.4.final.0-64 in 1902ms

creator CPython3Windows(dest=d:\PythonVirtualenvs\oldAutotestingPlatform, clear=False, global=False)

seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\cassmall\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1)

activators FishActivator,BashActivator,BatchActivator,XonshActivator,PythonActivator,PowerShellActivator

选项说明:

-p: 指定你要虚拟的Python版本,如果python路径带空格,需要为路径添加双引号,否则会报类似错误:FileNotFoundError: [WinError 2] 系统找不到指定的文件

d:\PythonVirtualenvs\oldAutotestingPlatform: 单个虚拟环境的目录路路径(路径格式推荐:总目录路径/以项目命名的目录),这里表示在PythonVirtualenvs该目录下,建立一个名叫oldAutotestingPlatform的虚拟环境。

virtualenv的早些版本,还支持?-no-site-packages参数,用于控制建立虚拟环境时不将原版本中的第三方库拷贝过来,以便获得一个纯净的Python环境,最新版本中,去掉了该参数,默认直接使用?-no-site-packages模式。

更多选项参考官方资料。

查看创建结果

python virtualenv虚拟环境配置与使用教程详解

使用虚拟环境

命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行activate命令。或者使用绝对路径的方式调用该命令。

d:\PythonVirtualenvs\oldAutotestingPlatform\Scripts>activate.bat

(oldAutotestingPlatform) d:\PythonVirtualenvs\oldAutotestingPlatform\Scripts>

如上,如果命令执行成功,会出现提示符,本例中为(oldAutotestingPlatform)表示当前在oldAutotestingPlatform这个虚拟环境内,在该环境内进行的python相关操作(运行python命令,安装python软件包等,和在常规python环境中操作一样,该怎么操作还是怎么操作),都被限制和绑定在该虚拟环境内(软件包会被安装到虚拟环境目录下的Lib\site-packages中),不会对操作系统下本地的Python版本和其它的虚拟环境产生任何的影响。

退出虚拟环境

python virtualenv虚拟环境配置与使用教程详解

要退出虚拟环境,只要运行script目录下的deactivate命令就可以了。

删除虚拟环境

要删除虚拟环境,直接删除对应虚拟环境目录就可以了

virtualenv配合Pycharm的使用

可以在Pycharm中指定虚拟环境的python解释器,以便让项目在虚拟环境中运行。做法如下:

File -> Settings -> Project:xxx(具体项目) -> Project Interpreter

python virtualenv虚拟环境配置与使用教程详解

python virtualenv虚拟环境配置与使用教程详解

选择Add Local

选择对应虚拟环境目录下的Scripts\python.exe,如下,点击Ok即可。

python virtualenv虚拟环境配置与使用教程详解

python virtualenv虚拟环境配置与使用教程详解

到此这篇关于python virtualenv虚拟环境配置与使用教程详解的文章就介绍到这了,更多相关python virtualenv虚拟环境内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用python实现简单EXCEL数据统计的实例
Jan 24 Python
基于python爬虫数据处理(详解)
Jun 10 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
对python中的pop函数和append函数详解
May 04 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
django框架自定义模板标签(template tag)操作示例
Jun 24 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
Python中base64与xml取值结合问题
Dec 22 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python多线程和多进程关系详解
Dec 14 Python
python 安装移动复制第三方库操作
Jul 13 #Python
基于Python爬取fofa网页端数据过程解析
Jul 13 #Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 #Python
python 制作python包,封装成可用模块教程
Jul 13 #Python
通过Python实现Payload分离免杀过程详解
Jul 13 #Python
python上selenium的弹框操作实现
Jul 13 #Python
python如何导入依赖包
Jul 13 #Python
You might like
基于PHP array数组的教程详解
2013/06/05 PHP
php缓存技术详细总结
2013/08/07 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
php操作MongoDB类实例
2015/06/17 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
node.js [superAgent] 请求使用示例
2015/03/13 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
vant实现购物车功能
2020/06/29 Javascript
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
python调用API实现智能回复机器人
2018/04/10 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
python实现图片插入文字
2019/11/26 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
化工专业个人的求职信范文
2013/11/28 职场文书
教师党员思想汇报
2014/01/06 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
移交协议书
2014/08/19 职场文书
2014年车间工作总结
2014/11/21 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js