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装饰器使用方法实例
Nov 21 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
Aug 22 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
django框架中间件原理与用法详解
Dec 10 Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 Python
Python和Sublime整合过程图示
Dec 25 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
基于selenium及python实现下拉选项定位select
Jul 22 Python
python 如何调用 dubbo 接口
Sep 24 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编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php加密解密实用类分享
2014/01/07 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
php批量删除操作(数据访问)
2017/05/23 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
cument.execCommand()用法深入理解
2012/12/04 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
浅谈angular4生命周期钩子
2017/09/05 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
初中语文教学反思
2014/02/02 职场文书
五一劳动节活动记录
2014/03/23 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python