python开发环境管理:pip和virtualenv
不同的python软件需要不同的开发环境,互相之间甚至可能有冲突,怎么处理?使用pip、virtualenv和virtualenvwrapper可以迅速的搭建、转移开发环境,并隔离冲突。
软件包管理
- pip是easy_install的替代品,distribute是setuptools的替代品
pip使用
- 使用参考文档为:pip
-
pip install
安装test包
test -
pip list
列出已经安装的包 -
pip install --upgrade test
升级test包 -
pip uninstall test
卸载 -
pip install test==4.4
指定版本 -
pip install test>=4.4
指定最小版本号 -
pip freeze > requirements.txt
到处当前python环境的依赖库要求 -
pip install -r requirements.txt
根据依赖文件安装库
virtualenv
- virtualenv是用来创建独立python运行环境的工具
- 可以创建单独的安装目录,解决了依赖项、版本和权限的问题。比如pip不需要sudo了
创建虚拟环境
virtualenv
test- 命令将在当前目前下建立一个名为test的文件夹
- 此文件夹下python环境会自动安装pip,方便安装其他程序
- 默认将能使用系统中已经安装的包,可以使用
--no-site-packages
禁止
启动虚拟环境
source
test/bin/activate- 启动之后,可以看到命令行头部出现
(test)
字样,表明启动成功
退出
-
deactivate
用于退出虚拟环境 -
rm -r test
用于删除虚拟环境
virtualenvwrapper
- virtualenvwrapper是virtualenv的一个扩展,使虚拟环境的管理更加容易
- 参考文档virtualenvwrapper
安装
-
使用
sudo pip install
之后使用以下命令设置开发环境,可以将最后一行加入.bash_profile
,以后就无需重复初始化了$ mkdir -p $WORKON_HOME
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh -
方便起见,直接将以下代码加入
.bashrc
,因为有些环境下.bash_profile
不会被执行# 设置virtualenv 工作的目录. 我们放在用户跟目录下
export WORKON_HOME=$HOME/.virtualenvs
# ensure all new environments are isolated from the site-packages directory
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
# use the same directory for virtualenvs as virtualenvwrapper
export PIP_VIRTUALENV_BASE=$WORKON_HOME
# makes pip detect an active virtualenv and install to it
export PIP_RESPECT_VIRTUALENV=true
if [[ -r /usr/local/bin/virtualenvwrapper.sh ]]; then
source /usr/local/bin/virtualenvwrapper.sh
else
echo "WARNING: Can't find virtualenvwrapper.sh"
fi
常用命令
-
mkvirtualenv
创建名为test的虚拟环境
test -
workon
或者lsvirtualenv
列出所有虚拟环境 -
workon test
启动或者切换虚拟环境 -
rmvirtualenv test
删除虚拟环境 -
deactivate
退出