在搭建一个项目的时候,希望使用最新版的Python3.7版本,但是Python3.6的版本也要留下,那么问题来了,如何解决这个问题呢?如何在windows下面使用多版本Python安装指定版本的虚拟环境呢?这篇文章我就来解决这个问题。
多版本Python使用
去Python官网,下载自己想要的版本,我这里不演示Python的安装过程,但要说明的是你在安装的时候不要勾选那个Add pyhton to Path
(当然如果你勾选了也没关系,前提是你要记得自己Python安装在哪个环境下面了)。我以自己安装了Python3.6.4和Python3.7.0这两个版本为例,开始介绍。
其中,我Python3.6的安装路径为:F:\Python\pystall
,Python3.7的安装路径为:F:\Python3.7\python37
。现在我在命令行输入Python
出现的是:python3.6的版本:
打开系统变量的配置,点击path,发现我配置的路径是F:\Python\pystall
,所以直接输入Python就是Python3.6的版本:
现在我们在刚才的系统变量的path里面增加Python3.7的安装路径:F:\Python3.7\python37
,记得要把它放到之前环境的上面,因为系统查找Python环境是从上往下的:
然后退出dos命令,我们重新打开一下,在里面输入Python
出现的是:python3.7的版本:
所以我们就完成了Python多版本的安装与使用,也就是说需要用到哪个版本的python就把它添加到系统的环境变量里面去。这里我删除了Python3.7的环境配置,只保留Python3.6的环境。
指定版本的虚拟环境的搭建
安装virtualenv
关于virtualenv的安装,我讲过很多次,这里就不再说明了,你可以点击这里:零基础使用Django2.0.1打造在线教育网站(二):开发环境配置按照要求进行安装,我是安装在了f:\python\pystall\lib\site-packages
下面。我们先查看一下它的版本:
F:\Envs>virtualenv --version
15.2.0
安装Python3.6的虚拟环境
接下来我们就开始创建虚拟环境:我们先在F盘下面创建一个名为Envs的目录(实际上我已经创建好了),然后cd到这个目录,开始新建一个名为ttttest
的虚拟环境:
F:\Envs>virtualenv ttttest
Using base prefix 'f:\\python\\pystall'
New python executable in F:\Envs\ttttest\Scripts\python.exe
Installing setuptools, pip, wheel...done.
F:\Envs>cd ttttest
F:\Envs\ttttest>cd scripts
F:\Envs\ttttest\Scripts>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
然后cd到scripts目录,因为Python.exe就在这个目录里面,然后我们输入python,发现是python3.6,因为我前面说过了,我只保留了Python3.6的环境,你可以打开scripts这个目录,看到没有:
进入与退出虚拟环境的命令是activate.bat
和deactivate.bat
。
安装Python3.7的虚拟环境
和之前一样,我们还是在Envs这个目录下面,新建一个ttttest7
的虚拟环境:
F:\Envs>virtualenv -p F:\Python3.7\python37\python.exe ttttest7
Running virtualenv with interpreter F:\Python3.7\python37\python.exe
Using base prefix 'F:\\Python3.7\\python37'
New python executable in F:\Envs\ttttest7\Scripts\python.exe
Installing setuptools, pip, wheel...done.
F:\Envs>cd ttttest7
F:\Envs\ttttest7>cd scripts
F:\Envs\ttttest7\Scripts>activate.bat
(ttttest7) F:\Envs\ttttest7\Scripts>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
看到没有,我们在后面指定了虚拟环境的Python版本,然后进入虚拟环境,运行Python发现就是Python3.7了,你可以打开这个目录下面的scripts:
所以看到这里你明白了了,用哪个虚拟环境就指定哪个Python环境。但是用virtualenv非常不方便,所以推荐使用virtualenvwrapper来进行虚拟环境的管理。
virtualenvwrapper的安装
这个virtualenvwrapper的安装非常简单,我们使用下面的命令安装即可:
F:\Envs>pip install virtualenvwrapper-win
Requirement already satisfied: virtualenvwrapper-win in f:\python\pystall\lib\site-packages (1.2.5)
Requirement already satisfied: virtualenv in f:\python\pystall\lib\site-packages (from virtualenvwrapper-win) (15.2.0)
因为我已经安装了,所以就是这个样子。然后可以使用workon
命令查看当前已经存在的虚拟环境。如果我们需要新建虚拟环境可以使用mkvirtualenv xxx
命令,这里建了一个testtt
的虚拟环境:
F:\Envs>mkvirtualenv testtt
Using base prefix 'f:\\python\\pystall'
New python executable in C:\Users\lenovo\Envs\testtt\Scripts\python.exe
Installing setuptools, pip, wheel...done.
(testtt) F:\Envs>
不知道你发现没有,我们前面采用virtualenv
命令所创建的虚拟环境是直接安装在你当前所在的目录的(你在哪个目录执行virtualenv命令,新建的虚拟环境就在那)。但是使用mkvirtualenv
命令所创建的虚拟环境是在C:\Users\lenovo\Envs
这个目录下面的,这是默认的安装路径,你可以自定义的。打开系统环境变量配置,我们新增WORKON_HOME
然后路径就写F:Envs
(自定义路径):
然后点击确定,现在我们重新打开一个dos,创建一个名为7ttttest
的虚拟环境,我们看看它是不是安装在了F:Envs
下面:
C:\Users\lenovo>mkvirtualenv 7ttttest
Using base prefix 'f:\\python\\pystall'
New python executable in F:\Envs\7ttttest\Scripts\python.exe
Installing setuptools, pip, wheel...done.
(7ttttest) C:\Users\lenovo>
然后找到F:Envs
,发现确实在这里:
这样我们就完成了虚拟环境安装的自定义。
虚拟环境指定Python版本的命令就是mkvirtualenv -p python路径 虚拟环境名称
(注意这个-p是不可以去掉的)。举个例子来说,我们需要在F:Envs
目录下面新建一个名为test
的Python版本为3.7的虚拟环境。通过分析,我们的WORKON_HOME
就是F:Envs
,所以这个不需要修改。然后我的Python3.7的安装路径为:F:\Python3.7\python37
,所以我们采用的命令就是:
mkvirtualenv -p F:\Python3.7\python37\python.exe test
至此我们本篇关于windows下面使用多版本Python安装指定版本的虚拟环境的介绍就到此为止了,感谢你的赏阅!