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求众数问题实例
Sep 26 Python
python3生成随机数实例
Oct 20 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 Python
Python实现统计文本文件字数的方法
May 05 Python
python方向键控制上下左右代码
Jan 20 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 Python
python爬虫中采集中遇到的问题整理
Nov 27 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之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
全面理解闭包机制
2016/07/11 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
运动会解说词200字
2014/02/06 职场文书
工程建设实施方案
2014/03/14 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
西安兵马俑导游词
2015/02/02 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Java基础——Map集合
2022/04/01 Java/Android
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python