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实现Windows下的鼠标键盘模拟的实例代码
Jul 13 Python
浅析Git版本控制器使用
Dec 10 Python
python实现多进程代码示例
Oct 31 Python
python实现kmp算法的实例代码
Apr 03 Python
Python pandas用法最全整理
Aug 04 Python
Pytorch对Himmelblau函数的优化详解
Feb 29 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
Feb 29 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
pycharm的python_stubs问题
Apr 08 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
Python collections.deque双边队列原理详解
Oct 05 Python
matplotlib之属性组合包(cycler)的使用
Feb 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
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
判断对象是否Window的实现代码
2012/01/10 Javascript
浅谈JavaScript事件的属性列表
2015/03/01 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
原生js实现放大镜
2017/02/20 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python常用模块用法分析
2014/09/08 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
利用python求积分的实例
2019/07/03 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
abstract是什么意思
2012/02/12 面试题
团干部培训方案
2014/06/03 职场文书
大明湖导游词
2015/02/03 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
门面租赁合同范文
2019/08/06 职场文书
python中redis包操作数据库的教程
2022/04/19 Python
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle