使用virtualenvwrapper隔离python环境
今天使用的是virtualenvwrapper,相较于使用virtualenv, 好处就是把所有环境都放在同一目录下管理,以便更好的管理及切换。
首先需要确认有 pip 是否已经安装, 若没有需要先安装 pip,因我们所有包都是用pip来安装 。 可使用下面命令去安装:
sudo easy_install pip
也可直接从官网下载安装:https://pypi.python.org/pypi/pip
接着我们就安装今天的"主角", virtualenvwrapper:
sudo pip install virtualenvwrapper
在Windows下有对应的版本:
pip install virtualenvwrapper-win
然后需增加一个环境变量WORKON_HOME,值为你想保存env文件的路径,如:D:\envs
,Windows系统以下步骤省略。
安装成功后我们做一些配置, 以便在每次启动terminal时可马上使用virtualenvwrapper。
当开你当前用户跟目录下的 .bash_profile 文件.(若没有可自行创建一个)
vim ~/.bash_profile
增加下面内容:
# set virtualenvwrapper_python path
export VIRTUALENVWRAPPER_PYTHON=`which python3` #virtualenv安装在哪个版本的Python下
export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv`
# 设置virtualenv 工作的目录. 我们放在用户跟目录下
export WORKON_HOME=$HOME/.virtualenvs
# ensure all new environments are isolated from the site-packages directory
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
# use the same directory for virtualenvs as virtualenvwrapper
export PIP_VIRTUALENV_BASE=$WORKON_HOME
# set virtualenvwrapper_python path
export VIRTUALENVWRAPPER_PYTHON=`which python3` #virtualenv安装在哪个版本的Python下
export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv
# 设置virtualenv 工作的目录. 我们放在用户跟目录下
export WORKON_HOME=$HOME/.virtualenvs
# ensure all new environments are isolated from the site-packages directory
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
# use the same directory for virtualenvs as virtualenvwrapper
export PIP_VIRTUALENV_BASE=$WORKON_HOME
# makes pip detect an active virtualenv and install to it
export PIP_RESPECT_VIRTUALENV=true
if [[ -r /usr/local/bin/virtualenvwrapper.sh ]]; then
source /usr/local/bin/virtualenvwrapper.sh
else
echo "WARNING: Can't find virtualenvwrapper.sh"
fi
重新打开一个terminal,可用下面命令来创建一个虚拟环境:
mkvirtualenv test
此时我们就可以用pip来安装你需要的包了,在此安装的包只在test这个虚拟环境下才起作用。
用下面命令来查看所有可用的虚拟环境:
lsvirtualenv
#或者
workon
若有多个虚拟环境,可用下面命令来进行快速切换环境:
workon test
注:test为我们的虚拟环境名称,以后也可直接用此命令来起动虚拟环境。
当要退出虚拟环境到ternimal时,用deactivate命令即可:
deactivate
当不需要一个虚拟环境时,可用下列命令删除:
rmvirtualenv test
来自为知笔记(Wiz)
最新文章
- Ancient Printer[HDU3460]
- HashMap实现原理及源码分析
- jqGrid配置属性说明
- ip封包
- Guava----Function
- 通过声明Attribute属性改变不同类的输出效果
- OpenResty(nginx+lua) 入门
- iOS不得姐项目--封装状态栏指示器(UIWindow实现)
- noip2012普及组——质因数分解
- hdu 3333 Turing Tree 图灵树(线段树 + 二分离散)
- Lichee (五岁以下儿童) sysconfig1.fex 配置系统
- linux无法解析主机地址(could not resolve host)解决办法
- 在win7下如何设置计划任务每一分钟执行一次
- Android Studio问题汇总
- Mybatis源码分析之结果封装ResultSetHandler和DefaultResultSetHandler
- Python脚本日志系统
- mybatis入门配置和调试
- codeforces 804A Find Amir 思维/水题
- 8 -- 深入使用Spring -- 6...2 Spring支持的事务策略
- 常见的local variable 'x' referenced before assignment问题
热门文章
- Android设计模式之策略模式
- java-No exception of type ConfigurationException can be thrown; an exception type must be a subclass of Throwable
- 设计模式-单键(Singleton)
- android 带边框的圆角按钮
- ECSide标签属性说明之<;ec:column>;
- hdu 3572 Task Schedule(最大流)2010 ACM-ICPC Multi-University Training Contest(13)——Host by UESTC
- Android 动画深入解析
- Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印
- STL中用erase()方法遍历删除元素 .xml
- Quartz与Spring集成