Python环境管理virtualenv&virtualenvwrapper的配置详解
背景
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 # 激活该虚拟环境
运行完之后,命令行的最前面应该出现括号,里面内容是虚拟环境的名字。代表我们已经处于该环境之下,如下图所示。
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、项目中引用虚拟环境
方法一:在终端中执行
环境已经创建好了,且也已经激活了。首先进去我的项目目录,执行一下程序。看下图说明是可以了。
方法二:在pycharm IDE中执行
首次创建环境后,需要在IDE中add一下。
选择Existing environment,在下面即可找到刚刚创建的虚拟环境myenv。
下次进入其他项目时,可以直接选就可以了。
参考链接:
https://xu3352.github.io/python/2018/08/17/Python-work-with-virtualenv-and-virtualenvwrapper
官方文档:https://virtualenvwrapper.readthedocs.io/en/latest/
下一篇:读取nii或nii.gz文件中的信息即输出图像操作