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调用新浪微博API项目实践
Jul 28 Python
PyQt5实现下载进度条效果
Apr 19 Python
Python smtplib实现发送邮件功能
May 22 Python
对python中assert、isinstance的用法详解
Nov 27 Python
Pytorch 之修改Tensor部分值方式
Dec 27 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
python 如何快速复制序列
Sep 07 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
python 三边测量定位的实现代码
Apr 22 Python
Python Django项目和应用的创建详解
Nov 27 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
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
php内存缓存实现方法
2015/01/24 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP fclose函数用法总结
2019/02/15 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python爬虫之网页图片抓取的方法
2018/07/16 Python
pygame实现成语填空游戏
2019/10/29 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
创业计划书之废品回收
2019/09/26 职场文书
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL