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实现多行注释的另类方法
Aug 22 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
在CMD命令行中运行python脚本的方法
May 12 Python
python实现整数的二进制循环移位
Mar 08 Python
Python安装tar.gz格式文件方法详解
Jan 19 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
Django权限控制的使用
Jan 07 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
初品cakephp 入门基础
2012/02/16 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
js加强的经典分页实例
2013/03/15 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Python ORM编程基础示例
2020/02/02 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Python sorted对list和dict排序
2020/06/09 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
法律顾问服务方案
2014/05/15 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
公司收款委托书范本
2014/09/20 职场文书
公司员工离职证明书
2014/10/04 职场文书
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang