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中itertools模块用法详解
Sep 25 Python
python爬虫爬取网页表格数据
Mar 07 Python
Django contenttypes 框架详解(小结)
Aug 13 Python
python实现名片管理系统项目
Apr 26 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
Python绘制股票移动均线的实例
Aug 24 Python
pymysql 开启调试模式的实现
Sep 24 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
在python中求分布函数相关的包实例
Apr 15 Python
什么是Python变量作用域
Jun 03 Python
浅谈keras中loss与val_loss的关系
Jun 22 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字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
Jquery性能优化详解
2014/05/15 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
wxPython学习之主框架实例
2014/09/28 Python
Python的类实例属性访问规则探讨
2015/01/30 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
Python类装饰器实现方法详解
2018/12/21 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
python 实现list或string按指定分段
2019/12/25 Python
Python while循环使用else语句代码实例
2020/02/07 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
会计助理岗位职责
2014/02/17 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
怀念母亲教学反思
2014/04/28 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
Vue全局事件总线你了解吗
2022/02/24 Vue.js