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实现协同过滤的教程
Apr 08 Python
举例讲解Python中的算数运算符的用法
May 13 Python
详解Python函数作用域的LEGB顺序
May 14 Python
利用python如何处理nc数据详解
May 23 Python
使用Python实现一个栈判断括号是否平衡
Aug 23 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
python web自制框架之接受url传递过来的参数实例
Dec 17 Python
python日志logging模块使用方法分析
May 23 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
Python PIL图片添加字体的例子
Aug 22 Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 Python
使用pyecharts1.7进行简单的可视化大全
May 17 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中对用户身份认证实现两种方法
2011/06/04 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
PHP扩展开发入门教程
2015/02/26 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
javascript 快速排序函数代码
2012/05/30 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
javascript html5实现表单验证
2016/03/01 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
Python实现批量下载图片的方法
2015/07/08 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
python实现飞机大战
2018/09/11 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
Python将string转换到float的实例方法
2019/07/29 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
德国网上药房:Apotal
2017/04/04 全球购物
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
C#面试题
2016/05/06 面试题
精彩的大学生自我评价
2013/11/17 职场文书
同学聚会策划方案
2014/06/06 职场文书
大学生实习介绍信
2015/05/05 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
MySQL创建管理子分区
2022/04/13 MySQL
Spring Boot实现文件上传下载
2022/08/14 Java/Android