[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
附录
[Python] Python 虚拟机 - virtualenv的更多相关文章
- python中的virtualenv是干嘛的?
众所周知,python的各种库跨度比较大,比如如果你开发web的话,一个项目使用的Django是1.8, 而另一个项目使用的Django版本是1.7, 这就给开发人员带来了很大的困扰. 因此,pyth ...
- Python虚拟环境工具-Virtualenv 介绍及部署记录
在开发Python应用程序时,系统默认的Python版本可能会不兼容这个应用程序, 如果同时开发多个应用程序, 可能会用到好几个版本的python环境, 这种情况下,每个应用可能需要各自拥有一套&qu ...
- Python3.6编译安装以及python开发之virtualenv与virtualenvwrapper
Python3.6编译安装 下载python源码包 先到安装目录 cd /opt 下载源码包 wget https://www.python.org/ftp/python/3.6.2/Python-3 ...
- (zhuan)Python 虚拟环境:Virtualenv
Python 虚拟环境:Virtualenv zhuanzi: http://liuzhijun.iteye.com/blog/1872241 virtualenv virtualenv用于创建独立的 ...
- python安装虚拟环境virtualenv
虚拟环境 虚拟环境是一个将不同项目所需求的依赖分别放在独立的地方的一个工具,它给这些工程创建虚拟的Python环境.它解决了“项目X依赖于版本1.x,而项目Y需要项目4.x”的两难问题,而且使你的全局 ...
- python 虚拟环境操作 virtualenv +virtualenvwrapper
Window 下创建python的虚拟环境 下载工具 pip install virtualenv 创建虚拟环境目录 # 注意此命令创建的虚拟环境目录是在当前目录下 virtualenv testen ...
- Python之虚拟机操作:利用VIX二次开发,实现自己的pyvix(系列一)成果展示和python实例
在日常工作中,需要使用python脚本去自动化控制VMware虚拟机,现有的pyvix功能较少,而且不适合个人编程习惯,故萌发了开发一个berlin版本pyvix的想法,暂且叫其OpenPyVix.O ...
- 使用python的虚拟环境virtualenv
技术背景 在前面几篇博客中我们介绍了容器的使用(博客1.博客2.博客3.博客4.博客5),容器是一种系统级的隔离方案,更多的强调资源上的隔离.而这里我们要介绍的python的虚拟环境,更加强调的是依赖 ...
- python --- Python中的callable 函数
python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...
- Micro Python - Python for microcontrollers
Micro Python - Python for microcontrollers MicroPython
随机推荐
- 机器学习笔记(6):多类逻辑回归-使用gluon
上一篇演示了纯手动添加隐藏层,这次使用gluon让代码更精减,代码来自:https://zh.gluon.ai/chapter_supervised-learning/mlp-gluon.html f ...
- IDA Pro Disassembler 6.8.15.413 (Windows, Linux, Mac)
IDA: What's new in 6.8 Highlights This is mainly a maintenance release, so our focus was on fixing b ...
- 编码原则:最小化使用控制结构(条件和循环)续:告别 break 和 continue
如果最小化的使用了for.while等控制结构,那么,之前控制结构对应的两个控制语句(break he continue)也需要有对应的替换方案,好在几乎所有支持高阶函数的语言的集合API都有支持.
- 面试题:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。(c++实现)
实例说明 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ...
- iOS:百度长语音识别具体的封装:识别、播放、进度刷新
一.介绍 以前做过讯飞语音识别,比较简单,识别率很不错,但是它的识别时间是有限制的,最多60秒.可是有的时候我们需要更长的识别时间,例如朗诵古诗等功能.当然讯飞语音也是可以通过曲线救国来实现,就是每达 ...
- zookeeper logs and snapshot
来自:http://xstarcd.github.io/wiki/Cloud/zookeeper_log_snapshot.html 事务日志可视化转换 1 2 3 4 5 6 7 8 9 10 11 ...
- linux popen()与system()的区别
linux popen()与system()的区别 popen() 可以在调用程序和POSIX shell /usr/bin/sh 要执行的命令之间创建一个管道(请参阅sh-posix(1) ). p ...
- Wifiner for Mac(WiFi 状况分析工具)破解版安装
1.软件简介 Wifiner 是 macOS 系统上一款 Wifi 分析工具,仅需几次点击即可对您的 Wi-Fi 网络连接进行分析和故障排除.扫描您的 Wi-Fi 网络,获取包含交互式彩色编码热 ...
- C#-MVC开发微信应用(6)--用户分组信息管理
让我们继续深入探索这方面的技术,为了更好的应用起来,专心做好底层的技术开发.本篇继续上一篇的介绍,主要介绍分组管理方面的开发应用,这篇的内容和上一篇,作为一个完整的用户信息和分组信息管理的组合. 1. ...
- Nginx 日志自动分割
Nginx 的日志都是写在一个文件当中的,不会自动地进行切割,如果访问量很大的话,将导致日志文件容量非常大,不便于管理和造成Nginx 日志写入效率低下等问题.所以,往往需要要对access_log. ...