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数据分析--Pandas知识点
Mar 23 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
关于Python作用域自学总结
Jun 10 Python
Python-Seaborn热图绘制的实现方法
Jul 15 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
python return逻辑判断表达式实现解析
Dec 02 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
python实现图片横向和纵向拼接
Mar 05 Python
django项目中新增app的2种实现方法
Apr 01 Python
Python3 使用pip安装git并获取Yahoo金融数据的操作
Apr 08 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
犀利的js 函数集合
2009/06/11 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
javascript中length属性的探索
2011/07/31 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
vue全局组件与局部组件使用方法详解
2018/03/29 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python利用递归和walk()遍历目录文件的方法示例
2017/07/14 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
python检测IP地址变化并触发事件
2018/12/26 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
可贵的沉默教学反思
2014/02/06 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
我的理想演讲稿
2014/04/30 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
出国留学自荐信模板
2015/03/06 职场文书
Golang获取List列表元素的四种方式
2022/04/20 Golang