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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python pass 语句使用示例
Mar 11 Python
python计算时间差的方法
May 20 Python
Python入门之后再看点什么好?
Mar 05 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
浅析Python装饰器以及装饰器模式
May 28 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
通过python连接Linux命令行代码实例
Feb 18 Python
django美化后台django-suit的安装配置操作
Jul 12 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
jQuery中:gt选择器用法实例
2014/12/29 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
jupyter安装小结
2016/03/13 Python
python实现机器学习之多元线性回归
2018/09/06 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
Python如何实现远程方法调用
2020/08/07 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
广告学专业自荐信范文
2014/02/24 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
工作失职检讨书
2015/01/26 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
关于感恩的作文
2019/08/26 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript