进行不同的 python 项目开发,有的时候会遇到这样的情况:python 版本不一样,使用的软件包版本不一样。这种问题最佳的解决办法是使用 virtualenv 为不同的项目搭建独立的 python 环境。
sudo pip install virtualenv
mkdir myproject
cd myproject
virtualenv myproject_ENV
创建项目文件夹 myproject
进入项目目录
创建虚拟环境 myproject_ENV
这时候会发现在 myproject
目录下新增了一个 myproject_ENV
的文件夹。
cd myproject_ENV
source ./bin/activate
进入虚拟环境目录 myproject_ENV
激活
这时候在命令行的最左边会显示该虚拟环境的名称。不妨使用下面的命令查看一下变化:
which python
which pip
pip list
如果想要退出虚拟环境,使用这个命令就可以了:
deactivate
Virtualenvwrapper 的作用是:更方便的创建/激活/管理/销毁虚拟环境。
sudo pip install virtualenvwrapper
默认安装完成后并不能使用 Virtualenvwrapper 的命令,需要进行配置,在 ~/.bashrc
文件中添加:
if [ `id -u` != '0' ]; then
export VIRTUALENV_USE_DISTRIBUTE=1 # <-- Always use pip/distribute
export WORKON_HOME=$HOME/.virtualenvs # <-- Where all virtualenvs will be stored
source /usr/local/bin/virtualenvwrapper.sh
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
fi
之后运行命令:
source ~/.bashrc
mkvirtualenv myproject_ENV # 创建虚拟环境 myproject_ENV
workon myproject_ENV # 激活 myproject_ENV
deactivate # 离开
rmvirtualenv myproject_ENV # 删除 myproject_ENV
lsvirtualenv # 虚拟环境列表
showvirtualenv [env] # 显示指定环境的详情。
rmvirtualenv [env] # 移除指定的虚拟环境,移除的前提是当前没有在该环境中工作。如在该环境工作,先使用deactivate退出。
cpvirtualenv [source] [dest] # 复制一份虚拟环境。
cdvirtualenv [subdir] # 把当前工作目录设置为所在的环境目录。
cdsitepackages [subdir] # 把当前工作目录设置为所在环境的sitepackages路径。
add2virtualenv [dir] [dir] # 把指定的目录加入当前使用的环境的path中,这常使用于在多个project里面同时使用一个较大的库的情况。
toggleglobalsitepackages -q # 控制当前的环境是否使用全局的sitepackages目录。
virtualenv documentation: https://virtualenv.pypa.io/en/latest/
virtualenvwrapper documentation: http://virtualenvwrapper.readthedocs.org/en/latest/