python虚拟环境virtualenv
virtualenv
virtualenv用于在一台机器上创建多个独立的python运行环境,可以解决:
1. 隔离项目之间的第三方包依赖
2.在没有权限的情况下安装新的Python软件包
除此之外,还有一个额外的好处:部署应用时,把开发环境的虚拟环境打包到生产环境即可。
1.安装
C:\python27>pip install virtualenv
2.使用
D:\mysite>C:\Python27\Scripts\virtualenv.exe env_py27
以上代码在D:\mysite目录安装env_py27环境目录,其文件结构:
D:\mysite\env_py27 的目录 2018/05/16 06:06 <DIR> . 2018/05/16 06:06 <DIR> .. 2018/05/16 06:06 <DIR> Include 2018/05/16 06:06 <DIR> Lib 2018/05/16 06:06 <DIR> Scripts
其中Lib/site-packages包含了,从系统安装的python27下面的库。默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境
virtualenv --no-site-packages [虚拟环境名称]
比如
D:\mysite>C:\Python27\Scripts\virtualenv.exe --no-site-packages env_py27
virtualenv可以实现两个python版本的共存,环境互不影响;使用virtualenv -p python.exe virtualenvname 可以在创建虚拟环境的时候指定python版本,其中python.exe为python解释器的绝对路径加上python.exe:
## 为虚拟环境env_py27指定python2.7版本的解释器 D:\mysite>C:\Python27\Scripts\virtualenv.exe -p C:\Python27\python.exe env_py27
3.启用虚拟环境
D:\mysite\env_py27>Scripts\activate
4.停用虚拟环境
D:\mysite\env_py27>Scripts\deactivate
5.删除虚拟环境
D:\mysite>C:\Python27\Scripts\rmvirtualenv env_py27
virtualenvwrapper
我们如果需要切换虚拟环境,则必须先切换到虚拟环境所在目录,并运行activate,bat,这样实在是太麻烦了;可以使用virtualenvwrapper对虚拟环境进行一些快捷的管理和操作
1.安装virtualenvwrapper
pip install virtualenvwrapper-win
2.创建虚拟环境
默认创建的虚拟环境位于C:\Users\username\envs,可以通过环境变量 WORKON_HOME
来定制。
通过计算机-->属性-->高级系统设置-->环境变量-->在系统变量中新建“变量名”:WORKON_HOME,变量值:“你自定义的路径”如:E:/Envs。
创建后,会自动激活环境,注意看Shell提示符的改变:
##mkvirtualenv envname # 生成后会自动切换到最新创建的虚拟环境中;
##在E:/Envs下创建venv虚拟环境,命令如下:
mkvirtualenv venv
(venv)c:\> #创建后,自动激活环境
3.相关命令
##列出所有虚拟环境 lsvirtualenv ##列出所有虚拟环境 workon ##激活某个虚拟环境 workon venv(虚拟环境名) ##进入虚拟环境目录 cdvirtualenv ##进入虚拟环境的site-packages目录 cdsitepackages ##列出site-packages目录的所有软件包 lssitepackages ##停止虚拟环境 deactivate ##删除虚拟环境 rmvitualenv venv
重建Python环境
1.冻结环境
所谓冻结(freeze)
环境,就是将当前环境的软件包等固定下来:
pip freeze >packages.txt # 安装包列表保存到文件packages.txt中
2.重建环境
重建(rebuild)
环境就是在部署的时候,在生产环境安装好对应版本的软件包,不要出现版本兼容等问题:
pip install -r packages.txt
配合pip,可以批量安装对应版本的软件包,快速重建环境,完成部署。
3.创建虚拟环境指定python版本
mkvirtualenv new_env_name --python=指定python.exe路径 # 或者 virtualenv new_env_name --python=指定python.exe路径
4.修改安装源,加速pip安装速度
pip install -r requirements-win.txt -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com