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程序设计入门(1)基本语法简介
Jun 13 Python
python脚本实现分析dns日志并对受访域名排行
Sep 18 Python
Python 类的继承实例详解
Mar 25 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Django学习笔记之ORM基础教程
Mar 27 Python
python+opencv+caffe+摄像头做目标检测的实例代码
Aug 03 Python
python 调用钉钉机器人的方法
Feb 20 Python
python匿名函数用法实例分析
Aug 03 Python
python多线程分块读取文件
Aug 29 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 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文件上传表单摘自drupal的代码
2011/02/15 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
php递归json类实例
2014/12/02 PHP
PHP开发框架laravel安装与配置教程
2015/03/13 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
解决layer.open后laydate失效的问题
2019/09/06 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
Python 实现数组相减示例
2019/12/27 Python
python适合做数据挖掘吗
2020/06/16 Python
Python如何将模块打包并发布
2020/08/30 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
校长寄语大全
2014/04/09 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
总结Pyinstaller打包的高级用法
2021/06/28 Python
python3 字符串str和bytes相互转换
2022/03/23 Python
R9700摩机记
2022/04/05 无线电