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之list和str比较
Sep 20 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
python数据结构之链表的实例讲解
Jul 25 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
浅析python的Lambda表达式
Feb 27 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
用python解压分析jar包实例
Jan 16 Python
Python json读写方式和字典相互转化
Apr 18 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
python 简单的调用有道翻译
Nov 25 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
只需要这一行代码就能让python计算速度提高十倍
May 24 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中文件上传的安全问题
2006/10/09 PHP
PHP 万年历实现代码
2012/10/18 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
Symfony生成二维码的方法
2016/02/04 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
JS之小练习代码
2008/10/12 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
财务出纳员岗位职责
2013/11/26 职场文书
技术学校毕业生求职信分享
2013/12/02 职场文书
二年级体育教学反思
2014/01/15 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年教师工作总结
2014/11/10 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
海上钢琴师观后感
2015/06/03 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技