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中处理时间的几种方法小结
Apr 09 Python
Python实现方便使用的级联进度信息实例
May 05 Python
Python中的ceil()方法使用教程
May 14 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
python3.4实现邮件发送功能
May 28 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
如何在python中执行另一个py文件
Apr 30 Python
Django给表单添加honeypot验证增加安全性
May 06 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 Python
python基础之类方法和静态方法
Oct 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生成指定随机字符串的简单实现方法
2015/04/01 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
Python内建数据结构详解
2016/02/03 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
python复制文件到指定目录的实例
2018/04/27 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
中学生自我鉴定
2014/02/04 职场文书
年终总结会议主持词
2014/03/17 职场文书
奥利奥广告词
2014/03/20 职场文书
学期评语大全
2014/04/30 职场文书
公司节能减排倡议书
2014/05/14 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
考研英语辞职信
2015/05/13 职场文书
企业宣传语大全
2015/07/13 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang