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 正则式 概述及常用字符
May 07 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
Python类方法__init__和__del__构造、析构过程分析
Mar 06 Python
python登录并爬取淘宝信息代码示例
Dec 09 Python
python机器学习之贝叶斯分类
Mar 26 Python
python 实现UTC时间加减的方法
Dec 31 Python
Python&&GDAL实现NDVI的计算方式
Jan 09 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
python3中TQDM库安装及使用详解
Nov 18 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 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
使用PHP开发留言板功能
2019/11/19 PHP
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
2015/03/31 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
vue模块移动组件的实现示例
2020/05/20 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python抓取电影天堂电影信息的代码
2016/04/07 Python
Python线性回归实战分析
2018/02/01 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
python SocketServer源码深入解读
2019/09/17 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
Python with语句用法原理详解
2020/07/03 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
劳资员岗位职责
2013/11/11 职场文书
培训班主持词
2014/03/28 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
毕业生应聘求职信
2014/07/10 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2015年保管员工作总结
2015/04/30 职场文书
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL