virtualenv是一个能把你的应用隔离在一个虚拟环境中的工具。 一个虚拟环境是一个包含了你的应用依赖的软件的文件夹。简单的描述virtualenv的作用:
- virtualenv可以让你给不同的项目指定同样的依赖包的不同版本。
- virtualenv可以让你方便的在多台服务器上部署相同的以来环境。
virtualenv的安装非常简单,只需
pip install virtualenv即可。
一、如何使用virtualenv构建独立的虚拟环境?
1、virtualenv的安装
pip install virtualenv
2、创建虚拟环境
首先到使用命令行移动到想要存在虚拟环境的文件夹,然后执行:
D:>mkdir myenv D:>cd myenv D:myenv>virtualenv venv New python executable in D:myenvvenvScriptspython.exe D:myenvvenvInstalling setuptools, pip, wheel...Collecting setuptools Downloading http://mirrors.aliyun.com/pypi/packages/cd/48/45dee63e94368e331cfd8d90d1e804e8ad0c0d055e677ef2c1317de863e1/setuptools-25.4.0-py2.py3-none-any.whl (459kB) Collecting pip Collecting wheel Installing collected packages: setuptools, pip, wheel Successfully installed pip-8.1.2 setuptools-25.4.0 wheel-0.29.0 done.
其中myenv是存在所有虚拟环境的文件夹,在执行完命令后就myenv的文件夹下就生成了一个venv的文件夹,这个文件夹即为本次生成的虚拟环境。
3、激活虚拟环境
Linux环境下可以通过如下命令激活:
source venv/bin/activate
而Windows下的激活命令是:
venvScriptsactivate
你也许注意到了,你的shell提示符发生了改变。 virtualenv在它前面添加了当前被激活的virtual environment,所以你能意识到你并不存在于全局系统环境中。
D:myenv>venvScriptsactivate (venv) D:myenv>
当一个virtual environment被激活后,在虚拟环境下使用pip安装的包都会安装到virtual environment中而不是全局系统环境。
如果你想离开virtual environment,在命令行中执行deactivate即可:
(venv) D:myenv>deactivate D:myenv>
二、如何迁移virtualenv构建独立的虚拟环境?
比如说想把开发环境迁移到线上环境,方法非常的简单:
1、生成目前所在虚拟环境的所有依赖包信息
(venv) D:myenv>pip freeze > requirements.txt aniso8601==1.1.0 click==6.6 Flask==0.11.1 Flask-Admin==1.4.2 Flask-Login==0.3.2 Flask-OAuth==0.12 Flask-RESTful==0.3.5 Flask-SQLAlchemy==2.1 Flask-WTF==0.12 httplib2==0.9.2 itsdangerous==0.24 Jinja2==2.8 MarkupSafe==0.23 oauth2==1.9.0.post1 python-dateutil==2.5.3 pytz==2016.6.1 requests==2.11.1 six==1.10.0 SQLAlchemy==1.0.14 Werkzeug==0.11.10 WTForms==2.1
同时会在刚在命令行所在的目录下生成一个requirements.txt文件,文件中的内容和上述返回的内容一致。
2、在新的服务器的虚拟环境中批量安装requirements.txt的包。
pip install -r requirements.txt
随着项目增长,你可能会发现pip freeze中列出的每一个包并不再是运行应用所必须的了。 也许有些包只是在开发时用得上。pip freeze没有判断力;它只是列出了当前安装的所有的包。所以你只能手动记录依赖的变动了。 你可以把运行应用所需的包和开发应用所需的包分别放入对应的require_run.txt和require_dev.txt。
注意:在freeze或install依赖包时,确保你正为于正确的virtual environment之中。
三、使用virtualenvwrapper更加方便的管理虚拟环境
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
- 将所有虚拟环境整合在一个目录下
- 管理(新增,删除,复制)虚拟环境
- 切换虚拟环境
- …
在安装Virtaulenvwrapper之前,首先要确保已经安装了virtualenv。
Linux下安装命令:
pip install virtualenvwrapper
安装完成后并不能直接使用virtualenvwrapper,还需要进一步进行环境设置:
创建目录用来存放虚拟环境:
mkdir $HOME/Envs
编辑 ~/.bashrc,在文件最后追加如下内容:
export WORKON_HOME=$HOME/Envs source /usr/local/bin/virtualenvwrapper.sh
运行:
$ source ~/.bashrc保存配置信息。此时virtualenvwrapper就可以使用了。virtualenvwrapper的基本使用方式:
- 列出虚拟环境列表:
workon 或者 lsvirtualenv
- 新建虚拟环境:
mkvirtualenv [虚拟环境名称]
- 启动/切换虚拟环境:
workon [虚拟环境名称]
- 删除虚拟环境:
rmvirtualenv [虚拟环境名称]
- 离开虚拟环境:
deactivate
Windows下安装命令:
pip install virtualenvwrapper-win
参考链接:
- http://pythonguidecn.readthedocs.io/zh/latest/dev/virtualenvs.html
- https://virtualenv-chinese-docs.readthedocs.io/en/latest/
网友评论已有0条评论, 我也要评论