[Python] Python 虚拟机 - virtualenv
virtualenv
virtualenv
用于创建一个隔离的 Python 环境。
每个项目都有自己的依赖包,这些依赖包有时存在版本冲突,处理这种情况最好方法就是为每个项目创建一个专属的环境。
安装
稳定版 $ sudo pip install virtualenv
最新版 $ sudo pip install https://github.com/pypa/virtualenv/tarball/develop
用法
创建虚拟环境
1. 创建默认的虚拟环境
$ virtualenv env
命令表示创建一个名为 env
的虚拟环境。每个虚拟环境都包含一个专属的 env/bin/python
和 env/bin/pip
,任何时候运行它们都表示 env
将作为你的运行环境。
2. 创建指定解释器版本的虚拟环境
如果你的系统中同时安装了两个版本的 Python,例如 python2.7 和 python3.4,那么你可以指定创建的虚拟环境中使用哪个版本的 Python。
$ virtualenv -p python2.7 env2.7
或 $ virtualenv -p python3.4 env3.4
。
3. 创建继承系统第三方库的虚拟环境
如果你已经安装了一些第三方库在系统的 site-packages
目录中,你希望在新的虚拟环境中也可以使用它们,那么你可以使用 --system-site-packages
选项:
$ virtualenv --system-site-packages env
启用和退出虚拟环境
1. 启用虚拟环境
要启用 env
虚拟环境,只需要运行 $ source env/bin/activate
命令,该命令会修改系统路径 $PATH
,将 env/bin
路径置于系统路径之首。source
命令表示更改当前 Shell 环境。
启用了虚拟环境后,所有使用 pip
命令新安装的程序包都将置于当前环境下,而不会影响到系统环境或者其他虚拟环境。
2. 退出虚拟环境
退出虚拟环境只要执行 $ deactivate
命令。
virtualenvwrapper
virtualenvwrapper
是一个基于 virtualenv
之上的工具,它将所有的虚拟环境集中起来管理。
安装
$ sudo pip install virtualenvwrapper
命令会自动安装 virtualenvwrapper 及其依赖包 virtualenv, virtualenv-clone。
virtualenvwrapper
默认将所有虚拟环境放在 ~/.virtualenvs
目录下管理,你可以修改环境变量 WORKON_HOME
来指定虚拟环境的保存目录。
使用 $ source /usr/local/bin/virtualenvwrapper.sh
命令来启用 virtualenvwrapper
,你可以将该命令添加到 ~/.bashrc
或 ~/.profile
等 shell 启动文件中,以便登录 shell 后可以直接使用 virtualenvwrapper
提供的命令。
用法
1. 创建虚拟环境
$ mkvirtualenv env
命令表示在 $WORKON_HOME
目录下创建了一个 env
虚拟环境。
2. 启动虚拟环境
$ workon env
命令表示启用了 env
虚拟环境。workon
命令会自动停用当前所处的虚拟环境(如果存在的话)然后启动指定的虚拟环境,这样你就可以快速在各个虚拟环境之间切换。另外 workon
命令还提供了虚拟环境名称自动补完功能以帮助你选择虚拟环境。
3. 退出虚拟环境
执行 $ deactivate
命令退出虚拟环境。
4. 删除虚拟环境
执行 $ rmvirtualenv env
命令删除 env
虚拟环境。
5. 其他命令
lsvirtualenv
显示所有虚拟环境。cdvirtualenv
跳转至当前虚拟环境目录,方便查看虚拟环境的site-packages
目录。cdsitepackages
直接跳转至当前虚拟环境的site-packages
目录。lssitepackages
显示当前虚拟环境的site-packages
目录内容。
autoenv
autoenv
可以让你进入一个含有 .env
文件的目录时,自动执行 .env
文件来设置系统环境。
如果进入某个项目目录时自动激活它所对应的虚拟环境,那么可以在 .env
文件中配置激活期待的虚拟环境。
安装
$ sudo pip install autoenv
命令自动安装 autoenv
工具。
使用 $ source /usr/local/opt/autoenv/activate.sh
命令启用 autoenv
工具,你可以将该命令添加到 ~/.bashrc
等 shell 启动文件中。
用法
为项目设置特定的系统环境,那么可以在项目根目录下面新建一个 .env
文件,将所需设定的系统环境写在 .env
文件中。
当启用 autoenv
后,它会自动执行 .env
文件。
例如进入 workspaces
目录自动退出虚拟环境,编辑 workspaces/.env
添加以下内容:
BASE_PATH=`dirname "${BASH_SOURCE}"`
PWD=`pwd`
if [[ "${BASE_PATH}" == "${PWD}" ]]
then
declare -f -F deactivate &>/dev/null
if [[ "${?}" == "0" ]]
then
deactivate
fi
fi
又例如进入 workspaces/project
目录自动激活虚拟环境,编辑 workspaces/project/.env
添加以下内容:
BASE_PATH=`dirname "${BASH_SOURCE}"`
PWD=`pwd`
if [[ "${BASE_PATH}" == "${PWD}" ]]
then
if [[ -e bin/activate ]]
then
source bin/activate
fi
fi
附录
最新文章
- 缓冲区溢出利用——捕获eip的傻瓜式指南
- Android换肤技术总结
- [ASP.NET MVC 小牛之路]02 - C#知识点提要
- ASP.NET MVC中给所有的cshtml页面引用命名空间
- 关于C语言的问卷调查(补交)
- SQL Server调优系列基础篇(子查询运算总结)
- JavaScript parseInt() toString()函数
- [安卓] 6、列表之ArrayAdapter适配
- HDU 3487 Play with Chain(Splay)
- jQuery对象和DOM对象之间的相互转换
- Java中枚举类型简单学习
- Nagle算法,tcp小包组合(延迟)发送的算法
- Circle-Progress-View
- 自定义控件和XControl控件
- coco2d-x 基于视口的地图设计
- Python CGI编程和CGIHTTPServer
- 小红的难题<;递推>;
- Java开发笔记(八十七)随机访问文件的读写
- mysql 开发进阶篇系列 25 数据库RPM安装目录介绍
- supervisor错误记录
热门文章
- Reactor 3 学习笔记(1)
- linux查看及修改文件权限以及相关
- [Android Pro] 完美解决 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
- .Net Core邮件发送之MailKit
- JAVA递归、非递归遍历二叉树(转)
- Android学习笔记(11):线性布局LinearLayout
- 【T06】记住TCP是一种流协议
- WIN10平板 如何关闭自动更新
- MSSQL存储过程
- Linux下在root权限下临时使用其它用户运行命令