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实现socket端口重定向示例
Feb 10 Python
Python学习笔记_数据排序方法
May 22 Python
Python中的startswith和endswith函数使用实例
Aug 25 Python
python在指定目录下查找gif文件的方法
May 04 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
Python logging模块原理解析及应用
Aug 13 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
python 实现性别识别
Nov 21 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批量删除jQuery操作
2017/07/23 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
全面了解js中的script标签
2016/07/04 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
浅谈Python基础之I/O模型
2017/05/11 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
Python下载网络小说实例代码
2018/02/03 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
2019年c语言经典面试题目
2016/08/17 面试题
土地转让协议书
2014/09/27 职场文书
借名购房协议书范本
2014/10/06 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
python随机打印成绩排名表
2021/06/23 Python
Go归并排序算法的实现方法
2022/04/06 Golang
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python
Python创建SQL数据库流程逐步讲解
2022/09/23 Python