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 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
给Python初学者的一些编程技巧
Apr 03 Python
python和bash统计CPU利用率的方法
Jul 10 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
Python 实现王者荣耀中的敏感词过滤示例
Jan 21 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
python如何处理程序无法打开
Jun 16 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 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
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
Apache2 httpd.conf 中文版
2006/12/06 PHP
CURL状态码列表(详细)
2013/06/27 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
js实现旋转木马效果
2017/03/17 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
js实现简单页面全屏
2019/09/17 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python单例模式实例分析
2015/04/08 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
python开发游戏的前期准备
2019/05/05 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
环保建议书200字
2014/05/14 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python