Python虚拟环境virtualenv的安装与使用详解


Posted in Python onMay 28, 2017

前言

动态语言Ruby、Python都有自己的虚拟环境,虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响。例如项目可以在基于Python2的环境中运行,而项目B可以在基于Python3的环境中运行。Python通virtualenv工具管理虚拟环境。

安装 virtualenv

$ pip install virtualenv

使用方法

$ cd my_project_folder
$ virtualenv venv

执行完命令后它会在当前目录下创建文件夹,这个文件夹包含一些Python执行文件,以及pip副本,用于安装其他的packges。

.
├── bin
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── activate_this.py
│ ├── easy_install
│ ├── easy_install-3.5
│ ├── pip
│ ├── pip3
│ ├── pip3.5
│ ├── python -> python3
│ ├── python3
│ ├── python3.5 -> python3
│ └── wheel
├── include
│ └── python3.5m -> /Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m
└── lib
 └── python3.5

此外在创建env的时候可以选择指定的Python解释器,例如下面是基于Python3创建的虚拟环境

$ virtualenv -p /usr/local/bin/python3 venv

默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境

virtualenv --no-site-packages [虚拟环境名称]

激活虚拟环境

cd env
source ./bin/activate

激活成功后,在命令行会显示虚拟环境的名称,类似((env)Your-Computer:your_project UserName$)

退出虚拟环境

$ deactivate

如果想删除虚拟环境,那么直接运行rm -rf venv/命令即可。

在虚拟环境安装Python packages

Virtualenv 附带有pip安装工具,因此需要安装的packages可以直接运行:

pip install [套件名称]

如果没有启动虚拟环境,系统环境也安装了pip工具,那么packages将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:

export PIP_REQUIRE_VIRTUALENV=true

如果在没开启虚拟环境时运行pip,就会提示错误:

Could not find an activated virtualenv (required).

Virtualenvwrapper

Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:

      1. 将所有虚拟环境整合在一个目录下

      2. 管理(新增,删除,复制)虚拟环境

      3. 切换虚拟环境

      4. ...

安装Virtualenvwrapper

安装Virtualenvwrapper前需要virtualenv已近安装

$ pip install virtualenvwrapper

此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。

1、创建目录用来存放虚拟环境

mkdir $HOME/Envs

编辑~/.zshrc或~/.bashrc(根据你使用shell类型决定)

export WORKON_HOME=$HOME/Envs source /usr/local/bin/virtualenvwrapper.sh 3. 运行:

$ source ~/.zshrc

此时virtualenvwrapper就可以使用了。virtualenvwrapper的基本使用方式:

1、列出虚拟环境列表

workon 或者 lsvirtualenv

新建虚拟环境

mkvirtualenv [虚拟环境名称]

2、启动/切换虚拟环境

workon [虚拟环境名称]

3、删除虚拟环境

rmvirtualenv [虚拟环境名称]

4、离开虚拟环境,和virutalenv一样的命令

deactivate

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家三水点靠木的支持。

Python 相关文章推荐
Python中暂存上传图片的方法
Feb 18 Python
Python中使用hashlib模块处理算法的教程
Apr 28 Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
python gensim使用word2vec词向量处理中文语料的方法
Jul 05 Python
详解Python是如何实现issubclass的
Jul 24 Python
用django设置session过期时间的方法解析
Aug 05 Python
浅谈python的elementtree模块处理中文注意事项
Mar 06 Python
小结Python的反射机制
Sep 28 Python
Python re.sub 反向引用的实现
Jul 07 Python
python 调用win32pai 操作cmd的方法
May 28 #Python
Python 稀疏矩阵-sparse 存储和转换
May 27 #Python
Django基础之Model操作步骤(介绍)
May 27 #Python
python之PyMongo使用总结
May 26 #Python
Python3安装Pymongo详细步骤
May 26 #Python
Python计时相关操作详解【time,datetime】
May 26 #Python
Python表示矩阵的方法分析
May 26 #Python
You might like
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
python将unicode和str互相转化的实现
2020/05/11 Python
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
2014年应届大学生自我评价
2014/01/09 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
介绍信如何写
2015/01/31 职场文书
golang中的struct操作
2021/11/11 Golang