virtualenv介绍及简明教程


Posted in Python onJune 23, 2020

virtualenv简介

在开发Python应用程序的时候,我们的系统上通常只会安装一个Python版本:例如 3.7。所有使用 pip 安装的第三方包都会被安装到Python的site-packages目录下。如果我们同时开发多个应用程序,而这些应用程序需要使用的某一个第三方包的版本各不相同,该怎么办?这种情况下,为每个应用程序“独立”安装一套Python运行环境显然是不现实的。这个难题,使用 virtualenv 可以轻易解决。

virtualenv 是专门用来为应用程序维护多套相互“隔离”的Python运行环境的工具,借助 virtualenv 我们可以在一台主机上创建多套相互隔离的Python运行环境。

安装virtualenv

安装准备

安装 virtualenv 之前需要先确认是否安装好 python 和 pip 。

# python -V
Python 2.7.
 
# pip -V
pip 19.0.3 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

pip安装virtualenv

pip install virtualenv
# 或者
pip3 install virtualenv
 
# 检查是否安装成功
virtualenv --version
virtualenv 20.0.17 from /usr/local/python3/lib/python3.7/site-packages/virtualenv/__init__.py

常见问题: -bash: virtualenv: command not found

解决办法:

# 找到 virtualenv 的安装路径
find / -name virtualenv
# /usr/local/python3/bin/virtualenv
# 创建软连接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

virtualenv各种其他命令如下:

用法:

$ virtualenv [OPTIONS] DEST_DIR

选项:

?version
显示当前版本号。

-h, ?help
显示帮助信息。

-v, ?verbose
显示详细信息。

-q, ?quiet
不显示详细信息。

-p PYTHON_EXE, ?python=PYTHON_EXE
指定所用的python解析器的版本,比如 ?python=python2.5 就使用2.5版本的解析器创建新的隔离环境。 默认使用的是当前系统安装(/usr/bin/python)的python解析器

?clear
清空非root用户的安装,并重头开始创建隔离环境。

?no-site-packages
令隔离环境不能访问系统全局的site-packages目录。

?system-site-packages
令隔离环境可以访问系统全局的site-packages目录。

?unzip-setuptools
安装时解压Setuptools或Distribute

?relocatable
重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。

?distribute
使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。

?extra-search-dir=SEARCH_DIRS
用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的?extra-search-dir路径。

?never-download
禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。

?prompt==PROMPT
定义隔离环境的命令行前缀。

使用virtualenv

# 创建一个文件夹用来存放各个环境的相关文件
mkdir envs
cd envs
 
# 创建一个名称为 test_env 的不带任何第三方包的独立的Python运行环境
virtualenv test_env
# 或者
mkdir test_env
cd test_env
virtualenv .
 
# 进入环境
source test_env/bin/activate
(test_env) [root@hadoop34 envs]#
 
# 为环境安装软件包
(test_env) [root@hadoop34 envs]# pip install requests
 
# 退出环境
(test_env) [root@hadoop34 envs]# deactivate

综上

virtualenv就是一个搭建虚拟化的python环境,便于不同的项目在同一台机器上开发运行。

virtualenv更多的还是适用于本地开发不同的项目,但是在生产环境中还是使用docker给不同的项目创建不同的容器,各自分开运行为好,不宜放在一个单独的物理机中运行。

到此这篇关于virtualenv介绍及简明教程的文章就介绍到这了,更多相关virtualenv使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python对字符串实现去重操作的方法示例
Aug 11 Python
Python中实现最小二乘法思路及实现代码
Jan 04 Python
python方向键控制上下左右代码
Jan 20 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
python+tifffile之tiff文件读写方式
Jan 13 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
python线程池如何使用
May 28 Python
python如何快速拼接字符串
Oct 28 Python
解决numpy和torch数据类型转化的问题
May 23 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 Python
python不同系统中打开方法
Jun 23 #Python
自学python用什么系统好
Jun 23 #Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 #Python
python为什么会环境变量设置不成功
Jun 23 #Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 #Python
解决tensorflow 释放图,删除变量问题
Jun 23 #Python
TensorFlow中如何确定张量的形状实例
Jun 23 #Python
You might like
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
PHP加密解密类实例分析
2015/04/20 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
Python的另外几种语言实现
2015/01/29 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python实现的个人所得税计算器示例
2018/06/01 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
GANT葡萄牙官方商店:拥有美国运动服传统的生活方式品牌
2018/10/18 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
如何写你的创业计划书
2014/01/07 职场文书
简单的项目建议书模板
2014/03/12 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
支部书记四风对照材料
2014/08/28 职场文书
党的群众路线调研报告
2014/11/03 职场文书
高中生军训感言
2015/08/01 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
php实例化对象的实例方法
2021/11/17 PHP