Python virtualenv 用于创建独立的,互不影响 Python 运行环境,优点如下:
- 通过创建独立的python运行环境,隔离不同项目对同一个lib不同版本之间的依赖
- 单个 Python 升级不影响其他应用
- 在某些目录/机器上安装新的package但没有权限问题
本文主要介绍如何安装配置使用 python Virtualenv。
安装
Python3
sudo apt install python3 python3-pip
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
使用
创建 python3 env
python3 -m venv ~/.virtualenvs/pecan-env
Python2
Linux 安装
# python2
sudo apt-get install python-pip
# python2
sudo pip install virtualenv
sudo pip install virtualenvwrapper
Windows 安装
按下 win + r
,输入cmd打开windows的命令窗口,输入pip install virtualenv进行安装,实例如下:
C:\Users\Xianbin>pip install virtualenv
Downloading/unpacking virtualenv
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
Mac 安装
安装pip
参考: https://pip.readthedocs.io/en/stable/installing/
sudo pip install virtualenv
sudo pip install virtualenvwrapper
卸载命令是pip uninstall virtualenv
。
配置环境变量
编辑:cat ~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
# export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
加载
source ~/.bashrc
Linux 使用
创建一个隔离环境,在默认目录:
mkvirtualenv test -p python ## 创建
lsvirtualenv -b ## 列出
workon test ## 切换
在当前目录:
virtualenv test -p python
virtualenv test -p python3
说明:
列出所有 env
workon
激活隔离环境
source test/bin/activate
或
workon test
我们就可以看到在命令行的前面已经加上了(test),这个时候我们看看python所指向的路径:
which python
退出虚拟环境
deactivate
帮助文档
virtualenv --help
Windows 使用
Python Virtualenv默认的文件目录是C:\Users\Xianbin\Envs,创建命令如下:
C:\Users\Xianbin\Envs>virtualenv venv
New python executable in venv\Scripts\python.exe
Installing setuptools, pip, wheel...done.
创建后将能在C:\Users\Xianbin\Envs看到venv的文件夹,该文件中就是该Python虚拟环境。
输入workon可以列出所有的python的虚拟环境,输入 workon <python虚拟空间名>
进入该虚拟空间。如下,其中(venv)表示当前的Python虚拟空间。
C:\Users\Xianbin\Envs>workon
Pass a name to activate one of the following virtualenvs:
==============================================================================
openstack
venv
C:\Users\Xianbin\Envs>workon venv
(venv) C:\Users\Xianbin\Envs>
或,通过输入 activate
进入工作空间。如下:
C:\Users\Xianbin\Envs\venv\Scripts>activate
(venv) C:\Users\Xianbin\Envs\venv\Scripts>
(venv) C:\Users\Xianbin\Envs>deactivate
C:\Users\Xianbin\Envs>
卸载
卸载pip
sudo apt-get remove python-pip
卸载virtualenv
sudo pip uninstall virtualenv
问题
MaC 下报错
- 错误信息:
Last login: Tue Jul 30 08:50:11 on ttys002
/usr/local/opt/python@2/bin/python2.7: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is
set properly.
➜ ~
修复步骤:
pip uninstall virtualenv virtualenvwrapper
pip2.7 install virtualenv virtualenvwrapper
. /usr/local/bin/virtualenvwrapper.sh
brew
更新完python后无法找到虚拟环境
dyld: Library not loaded: @executable_path/../.Python
Referenced from: /Users/xiexianbin/.virtualenvs/paas/bin/python
Reason: image not found
[1] 13689 abort python
修复步骤:重新创建env即可