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实现监控windows服务并自动启动服务示例
Apr 17 Python
Python中unittest用法实例
Sep 25 Python
python中__slots__用法实例
Jun 04 Python
Python 文件处理注意事项总结
Apr 10 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
python3转换code128条形码的方法
Apr 17 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
python实现用户名密码校验
Mar 18 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 Python
python是怎么被发明的
Jun 15 Python
python把一个字符串切开的实例方法
Sep 27 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
javascript 小型动画组件与实现代码
2010/06/02 PHP
php 文章调用类代码
2011/08/11 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
Expandable "Detail" Table Rows
2007/08/29 Javascript
JavaScript delete 属性的使用
2009/10/08 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
Django中Forms的使用代码解析
2018/02/10 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
Python中format()格式输出全解
2019/04/12 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
python super()函数的基本使用
2020/09/10 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
英语演讲稿范文
2014/01/03 职场文书
致全体运动员广播稿
2014/02/01 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
单位接收函格式
2015/01/30 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
总结Python常用的魔法方法
2021/05/25 Python