Python环境管理virtualenv&virtualenvwrapper的配置详解


Posted in Python onJuly 01, 2020

背景

Python 作为一门成熟的编程语言,拥有无数优秀的第三方包以方便开发者能够快速地构建应用。一般来说,如果你开发了一个 Python 软件包想供其他人使用,你可以将它上传至 PyPI (Python Package Index) 上,然后其他人就可以通过 pip 或者 easy_install等命令轻松地下载和管理各种包。

但是如果在所有的项目都在一个 Python 环境下,势必会引起包冲突。因此需要一款软件能够把每个项目的Python环境分离开,每个项目有自己独立的Python版本以及依赖。

virtualenv部分

virtualenv 就是这样一款能够建立隔离的 Python 环境的工具。

一. 安装

pip install virtualenv

安装完成之后,输入 virtualenv?version 如果输入版本号,表明安装成功。

二. 基本用法

1、创建环境

cd my_project # 进入工作目录
virtualenv -p /usr/local/bin/python3.8 myenv # 创建一个 python3.8,名为 myenv 的虚拟环境

执行后,当前目录下会生成一个与虚拟环境同名的文件夹,里面包含 Python 可执行文件和 pip 库。
在缺省的情况下,虚拟环境中并没有包含系统环境下的site-packages。如果想要使用系统环境下的第三方包,可以在创建环境的时候使用 --system-site-packages。

virtualenv -p /usr/local/bin/python3.8 --system-site-packages myenv

2、使用环境

cd myenv # 进入虚拟环境目录
source bin/activate # 激活该虚拟环境

运行完之后,命令行的最前面应该出现括号,里面内容是虚拟环境的名字。代表我们已经处于该环境之下,如下图所示。

Python环境管理virtualenv&virtualenvwrapper的配置详解

3、退出环境

deactivate

virtualenvwrapper部分

virtualenv 实际上已经足够优秀,但是在操作上稍稍有些繁琐。比如每次使用 source命令激活环境,忘记虚拟环境的地址等等。别急, virtualenvwrapper 这一工具会让你觉得环境管理是如此简单,优雅。

一. 安装

pip install virtualenvwrapper

二. 配置

将下面的代码添加到 .bash_profile(或者 .zshrc)

# virtualenvwrapper config
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
	export WORKON_HOME=$HOME/.virtualenvs 
	source /usr/local/bin/virtualenvwrapper.sh
fi

其中 WORKON_HOME是告诉 virtualenvwrapper 放置虚拟环境的位置。
添加完之后,执行

source ~/.bash_profile

如果想要确认是否真的安装成功,可以执行

mkvirtualenv --help

如果输出帮助信息,则安装成功。

三. 基本用法

1、创建虚拟环境

mkvirtualenv -p python3 myenv # 创建一个python3,名为myenv的虚拟环境

注意:和 virtualenv 不同,virtualenvwrapper 是在我们刚才所说的 WORKON_HOME目录中创建的虚拟环境而非当前目录。
可以看到命令行的最前面有了括号,里面是环境的名字。也就是说创建完成之后,同时也激活了该环境。可以查看当前环境下的 Python 版本 python-V和已安装的软件包 pip list。
默认情况下,virtualenvwrapper 不会包含系统的软件包,只会安装一些基本的软件包,例如pip, setuptools等等。

2、查看所有的虚拟环境

lsvirtualenv

将会列出所有的虚拟环境的名称。
当然你也可以到 ~/.virtualenvs查看所有的虚拟环境。

3、切换虚拟环境

workon [env]  # 直接切换到env

4、退出虚拟环境

deactivate

5、删除虚拟环境

rmvirtualenv [env]

6、项目中引用虚拟环境
方法一:在终端中执行
环境已经创建好了,且也已经激活了。首先进去我的项目目录,执行一下程序。看下图说明是可以了。

Python环境管理virtualenv&virtualenvwrapper的配置详解

方法二:在pycharm IDE中执行
首次创建环境后,需要在IDE中add一下。
选择Existing environment,在下面即可找到刚刚创建的虚拟环境myenv。
下次进入其他项目时,可以直接选就可以了。

Python环境管理virtualenv&virtualenvwrapper的配置详解

参考链接:
https://xu3352.github.io/python/2018/08/17/Python-work-with-virtualenv-and-virtualenvwrapper
官方文档:https://virtualenvwrapper.readthedocs.io/en/latest/

到此这篇关于Python环境管理virtualenv&virtualenvwrapper的配置详解的文章就介绍到这了,更多相关Python环境管理virtualenv&virtualenvwrapper内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python提示No module named images的解决方法
Sep 29 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
Python使用正则表达式实现文本替换的方法
Apr 18 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
python抓取搜狗微信公众号文章
Apr 01 Python
python实现的生成word文档功能示例
Aug 23 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
Python程序控制语句用法实例分析
Jan 14 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
python设置中文界面实例方法
Oct 27 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 #Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 #Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 #Python
python 读取.nii格式图像实例
Jul 01 #Python
使用npy转image图像并保存的实例
Jul 01 #Python
python实现npy格式文件转换为txt文件操作
Jul 01 #Python
python与pycharm有何区别
Jul 01 #Python
You might like
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Python实现一个简单的验证码程序
2017/11/03 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
Python中pillow知识点学习
2018/04/30 Python
python双向链表原理与实现方法详解
2019/12/03 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
Python 如何创建一个线程池
2020/07/28 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
实习期自我鉴定
2013/10/11 职场文书
八年级音乐教学反思
2014/01/09 职场文书
四年级小学生评语
2014/12/26 职场文书
2016年校园植树节广播稿
2015/12/17 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
js Proxy的原理详解
2021/05/25 Javascript