Python 安装 virturalenv 虚拟环境的教程详解
作者:初级电路与软件研究 发布时间:2021-04-04 18:27:30
一、概述
有时候会在一台主机上安装多个不同的Python版本,用以运行不同时期开发的项目, 而在这些不同的Python版本上有时又会加装不同的库和包。因此需要一种工具来管理各个不同的Python版本和运行环境。
virtualenv工具可以为每个Python项目创建一个“独立隔离”的虚拟Python运行环境,而且每个项目都可以为自己独立的Python 运行环境加装不同的扩展包和库,而不影响其他项目。
在使用virtualenv之前,首先需要保证你的操作系统上已经安装了所需的Python版本。 比如,如果你在操作系统上已经安装了Python2.7和Python3.7,那么就可以利用 virtualenv克隆出多个多个Python2.7和Python3.7独立运行环境。 但是如果你还需要Python3.4环境,那么就必须先在操作系统上安装Python3.4版本。
virturalenv创建虚拟Python环境的结构示意图如下图所示:
二、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\Python37
、d:\Programs Files\Python27
路径, 最好将Python37的目录放到Python27的目录之前,这样命令行会优先执行Python37中的程序。
(4)从此,启动Python命令要用:python27
或python37
, 以指明是运行哪个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 虚拟环境的教程详解网站的支持!
来源:https://www.cnblogs.com/initcircuit/archive/2020/02/21/12340189.html


猜你喜欢
- 本文实例讲述了Python分支语句与循环语句应用。分享给大家供大家参考,具体如下:一、分支语句1、if else语句语法:if 条件判断:
- 概述在进行TCP Socket开发时,都需要处理数据包粘包和分包的情况。本文详细讲解解决该问题的步骤。使用的语言是Python。实际上解决该
- SQL注入攻击的总体思路是:1.发现SQL注入位置;2.判断后台数据库类型;3.确定XP_CMDSHELL可执行情况4.发现WEB虚拟目录5
- 处理数据时我们经常需要从数组中随机抽取元素,这时候我们可以考虑使用np.random.choice()函数语法格式numpy.random.
- 一、Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监
- 本文实例讲述了Python面向对象之继承和多态用法。分享给大家供大家参考,具体如下:Python 类的继承和多态Python 类的继承在OO
- 本文实例讲述了Python实现读写sqlite3数据库并将统计数据写入Excel的方法。分享给大家供大家参考,具体如下: src
- 本文实例讲述了python提取页面内url列表的方法。分享给大家供大家参考。具体实现方法如下:from bs4 import Beautif
- 前言:整型是MySQL中最常用的字段类型之一,通常用于存储整数,其中int是整型中最常用的,对于int类型你是否真正了解呢?本文会带你熟悉i
- php多进程实现PHP有一组进程控制函数(编译时需要–enable-pcntl与posix扩展),使得php能在nginx系统中实现跟c一样
- 内容摘要:在像网站首页这样的资源比较集中的页面中,那些栏目最经常被用户点击?居左居右对广告的点击率的影响是什么?“一切用数字说话”:以上问题
- el-table使用el-select选中后无效需求:表格中一行显示一条数据,数据中的某个属性要展示一列,并且再另一列中用el-select
- 本文为大家讲解了pytorch实现CNN卷积神经网络,供大家参考,具体内容如下我对卷积神经网络的一些认识卷积神经网络是时下最为流行的一种深度
- 一、watch使用的几种方法1、 通过 watch 监听 msg 数据的变化。watch: { msg(oldVa
- tf.diag(diagonal,name=None) #生成对角矩阵import tensorflowas tf;diagonal=[1,
- 如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦。mysql该很悲壮的不停操作硬盘。 所以,可以试着让mys
- 我的长博文不少,比较影响阅读体验,有必要添加一个文章目录功能。相比 Wordpress, Typecho 的插件就比较少了。我想找一个像掘金
- 前言:在appium中adb命令的使用必不可少,做android测试嘛,adb命令肯定肯定是每天都要用的啦,所以今天给特地写个博客吧!这里就
- 这篇文章主要介绍了如何给Python代码进行加密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 使用 designer 进行开发首先要知道,使用 Qt designer 和 代码进行 Qt 开发实现页面跳转是不一样的,这里我们使用的是