Python 安装 virturalenv 虚拟环境的教程详解


Posted in Python onFebruary 21, 2020

一、概述

有时候会在一台主机上安装多个不同的Python版本,用以运行不同时期开发的项目, 而在这些不同的Python版本上有时又会加装不同的库和包。因此需要一种工具来管理各个不同的Python版本和运行环境。

virtualenv工具可以为每个Python项目创建一个“独立隔离”的虚拟Python运行环境,而且每个项目都可以为自己独立的Python 运行环境加装不同的扩展包和库,而不影响其他项目。

在使用virtualenv之前,首先需要保证你的操作系统上已经安装了所需的Python版本。 比如,如果你在操作系统上已经安装了Python2.7和Python3.7,那么就可以利用 virtualenv克隆出多个多个Python2.7和Python3.7独立运行环境。 但是如果你还需要Python3.4环境,那么就必须先在操作系统上安装Python3.4版本。

virturalenv创建虚拟Python环境的结构示意图如下图所示:

Python 安装 virturalenv 虚拟环境的教程详解

二、Linux下安装Python虚拟环境

一般Linux发行版都会已经安装好一个Python版本,你只需要再安装其它你需要的Python版本就行了。 以CentOS为例,默认已安装好 Python2.7,你只要再安装一个 Python3.7 即可。 下面是虚拟环境的建立步骤:

1. 安装Python3

(1)下载安装包:

# wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

(2)解压缩:

# tar -xvzf Python-3.7.4.tgz

(3)配置将要安装的目录:

进入解压后的Python-3.7.4目录

# ./confiture --prefix=/usr/local/python3.7.4

这样,python3包中的所有用到的文件都会安装到这个目录中。否则,待会make时, 会将一些python3的文件分散安装到系统的bin、lib等目录。不利于以后的卸载。 若是这样装,以后要卸载时,直接删除这个目录就行了。

(4)安装前置包

对于python3.7及以上版本,还需安装若干个前置包,如下:

a. 安装libffi-devel

# yum install libffi-devel -y

b. 安装zlib

# yum -y install zlib* 
或:
# wget http://www.zlib.net/zlib-1.2.11.tar.gz
# tar -xvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11
# ./configure
# make
# make install

(5)编译、安装 Python:

# make
# makeinstall

(6)建立软链接:

在 /usr/bin 路径下:

# ln -s /usr/local/python3.7.4/bin/python3.7 /usr/bin/python3
# ln -s /usr/local/python3.7.4/bin/python3.7 /usr/bin/python3.7

注意,由于/usr/bin/yum程序需要用到 Python2,所以我们不能修改 /usr/bin/python 这个软链接(仍指向 Python2.7)

如果一定要默认使用 Python3,可以改/usr/bin/yum文件,将其开头第一行改为:

#!/usr/bin/python2.7

2. 安装virtualenv

(1)安装virturalenv

利用Python3可直接安装virtualenv(会默认装到/usr/local/python3.7.4/bin/路径下)。

# python37 -m pip install virtualenv

(2)再做个软链接

ln -s /usr/local/python3.7.4/bin/virtualenv /usr/bin/virutalenv

3. 使用virtualenv建立虚拟环境

(1)新建(本用户的)总虚拟目录

$ mkdir ~/python_envs

(2)建立多个Python虚拟环境

a. 建 python27 虚拟环境

我们先建立一个名为:py27_dj111的虚拟环境,名字一目了然:Python版本2.7、 为了运行Django1.11。

$ virtualenv -p python2.7 ?-no-site-packages ~/python_envs/py27_dj111

上条命令将建立一个 py27_dj111 的目录和一个干净的 Python2 环境。

b. 建 python37 虚拟环境

我们再建立一个名为:py37_dj218的虚拟环境,名字一目了然:Python版本3.7、 为了运行Django2.18。

$ virtualenv -p python3.7 ?-no-site-packages ~/python_envs/py37_dj218

上条命令将建立一个 py37_dj218 的目录和一个干净的 Python3 环境。

(3)运行和退出虚拟环境

进入 ~/python_envs/py27_dj111/bin 目录,运行:

$ source activate
(py27_dj111)$

即可进入这个虚拟python环境,在命令提示符前会出现 (py27_dj111) 表示当前运行的虚拟环境。

若要退出虚拟python环境,可在任意路径下输入命令:

(py27_dj111)$ deactivate

4. 在虚拟环境下安装Django

(1)运行 py27_dj111 虚拟环境,并输入命令:

(py27_dj111)$ pip install django==1.11

(2)运行 py37_dj218 虚拟环境,并输入命令:

(py37_dj218)pip install django==2.18

三、Windows下安装Python虚拟环境

1. 安装Python

(1)下载安装包,并安装python2.7,将 python.exe 改成 python27.exe

(2)下载安装包,并安装python3.7,将 python.exe 改成 python37.exe

(3)设置环境变量PATH

增加:d:\Programs Files\Python37d:\Programs Files\Python27路径, 最好将Python37的目录放到Python27的目录之前,这样命令行会优先执行Python37中的程序。

(4)从此,启动Python命令要用:python27python37, 以指明是运行哪个python

2. 安装virtualenv

d:\Program Files\Python37\Scripts目录下,运行:

pip install virtualenv

或者,在任意目录下运行:

python37 -m pip install virtualenv

采用以上2种方法,virtualenv 会被安装到d:\Program Files\Python37\Scripts目录下。

3. 使用virtualenv建立虚拟环境

(1)新建目录d:\Program Files\python_envs

(2)建立虚拟环境:

d:\Program Files\Python37\Scripts目录下运行:

virtualenv.exe -p "d:\Program Files\Python27\python27.exe" ?-no-site-packages "d:\Programs Files\python_envs\py27_dj111"

上条命令将建立一个 py27_dj111 的目录和一个干净的 Python2 环境。

d:\Program Files\Python37\Scripts目录下运行:

virtualenv.exe -p "d:\Program Files\Python37\python37.exe" ?-no-site-packages "d:\Programs Files\python_envs\py37_dj218"

上条命令将建立一个 py37_dj218 的目录和一个干净的 Python3 环境。

(3)运行和退出虚拟环境:

d:\Program Files\python_envs\py27_dj111目录下运行:

active

即可进入这个 python 虚拟环境。

若要退出这个虚拟环境,可在任意路径下输入命令:

deactivate

4.在虚拟环境下安装 Django

(1)运行 py27_dj111 虚拟环境,并输入命令:

pip install django==1.11

(2)运行 py37_dj218 虚拟环境,并输入命令:

pip install django==2.18

总结

以上所述是小编给大家介绍的Python 安装 virturalenv 虚拟环境的教程详解,希望对大家有所帮助,也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python实现斐波那契数列的方法示例
Jan 12 Python
python中实现精确的浮点数运算详解
Nov 02 Python
让代码变得更易维护的7个Python库
Oct 09 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
django框架模板语言使用方法详解
Jul 18 Python
django 环境变量配置过程详解
Aug 06 Python
python获取array中指定元素的示例
Nov 26 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
Mar 03 Python
Python与C++中梯度方向直方图的实现
Mar 17 Python
再谈python_tkinter弹出对话框创建
Mar 20 Python
用PYTHON去计算88键钢琴的琴键频率和音高
Apr 10 Python
python ffmpeg任意提取视频帧的方法
Feb 21 #Python
Python实现自动访问网页的例子
Feb 21 #Python
解决Python pip 自动更新升级失败的问题
Feb 21 #Python
python利用百度云接口实现车牌识别的示例
Feb 21 #Python
在python3中实现更新界面
Feb 21 #Python
Python要如何实现列表排序的几种方法
Feb 21 #Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 #Python
You might like
在PHP中使用模板的方法
2008/05/24 PHP
PHP入门学习笔记之一
2010/10/12 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
js查看一个函数的执行时间实例代码
2015/09/12 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python从入门到精通(DAY 1)
2015/12/20 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
西班牙在线药店:DosFarma
2020/03/28 全球购物
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
中学生励志演讲稿
2014/04/26 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android