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 相关文章推荐
django接入新浪微博OAuth的方法
Jun 29 Python
Python操作MongoDB详解及实例
May 18 Python
python生成词云的实现方法(推荐)
Jun 13 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
python打开windows应用程序的实例
Jun 28 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
Python基于requests库爬取网站信息
Mar 02 Python
PyTorch中的C++扩展实现
Apr 02 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 Python
关于python中remove的一些坑小结
Jan 04 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中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
PHP 观察者模式的实现代码
2013/05/10 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
php简单实现MVC
2015/02/05 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
php session 写入数据库
2016/02/13 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
javascript之AJAX框架使用说明
2010/04/24 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
validator验证控件使用代码
2010/11/23 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
node中实现删除目录的几种方法
2019/06/24 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
python入门教程之识别验证码
2017/03/04 Python
Python读取word文本操作详解
2018/01/22 Python
python PyTorch预训练示例
2018/02/11 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
教堂婚礼主持词
2014/03/14 职场文书
文案策划求职信
2014/03/18 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
无工作证明怎么写
2015/06/15 职场文书
实用求职信模板范文
2019/05/13 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis