virtualenv
virtualenv
就是一个隔离的环境,这个虚拟环境包含了最简单的一些包,你可以使用这个虚拟环境来运行你的程序,并且在虚拟环境下安装的个各种包只作用于环境之内,不会影响系统的各种依赖,如果不需要这个虚拟环境了,rm -rf
删除即可,使用它可以构建一个整洁且一致的线上环境
安装
$ pip install virtualenv
之后进入你的项目目录
$ cd my_project_folder
$ virtualenv venv
在目录中会出现一个名为venv的文件夹,这就是一个环境
进入环境
$ source venv/bin/activate
这时,你的终端提示符看起来是这样的(venv)Your-Computer:your_project UserName$)
现在你可以运行你的程序,如果还没有,不如就运行如下的代码吧
#!/bin/env python
#encoding:utf-8
from bs4 import BeautifulSoup
import requests
print "hello virtualenv"
在新的环境中运行肯定不会成功,因为会提示没有bs4
像往常一样安装
pip install beautifulsoup4
pip install requests
现在就可以正常安装了
Note:
- 可以使用 pip freeze > requirements.txt 来导出依赖包,在其它系统部署直接使用 pip install -r requirements.txt 安装就可以了
- 如果你的程序受到版本控制,请将环境文件夹排除在外
退出环境,只需键入 deactivate 即可
(venv) $ deactivate
virtualenvwrapper
virtualenv 解决了依赖和环境一致性的问题,可是还有一个小问题,就是我们可能在很多地方都创建了环境,导致我们找不到它们,也不记得他们叫什么名字
virtualenvwrapper可以帮助我们解决这个问题
新建一个~/Envs文件夹来保存环境,新建一个~/PyProjects来保存项目
$ mkdir ~/Envs
$ mkdir ~/PyProjects
安装virtualenvwrapper及配置
$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Envs
$ export PROJECT_HOME=~/PyProjects
$ source /usr/local/bin/virtualenvwrapper.sh # Debian / Ubuntu
$ source /usr/bin/virtualenvwrapper.sh # Centos / Fedora
使用
创建一个新的环境,你可以在~/Envs找到它,创建完成会自动进入环境
$ mkvirtualenv venv
创建一个新的项目,你可以在~/PyProjects找到它
$ mkproject myproject
使用workon可以切换工作环境
$ workon venv
使用 deactivate 退出环境, 使用 rmvirtualenv 删除环境
$ rmvirtualenv venv
使用 lsvirtualenv 列出所有环境
$ lsvirtualenv
详细介绍请看:http://docs.python-guide.org/en/latest/dev/virtualenvs/