windows下python多版本共存良心教学
原理介绍
相信很多初学者都有遇到多版本python共存,自己不能解决的问题。
普通人是直接使用anaconda管理环境,但我们仍有必要自己解决多版本python管理的问题。我这里以python2与python3环境共存为例介绍多版本管理的策略。
正常情况下,下载的python解释器名为python.exe,其配套脚本存在于你的python_install_path/scripts中,这里的python_install_path即你当前python.exe所存放位置。
关键来了!我们此后需要为其配置环境变量。
环境变量,就是你的终端默认搜索路径。举例说明,当你在命令行运行一条xxx语句时,系统会默认先从当前路径下查找xxx.exe并运行,但当找不到时,则会从环境变量中搜寻xxx.exe(默认先搜寻用户变量,再之后搜索全局变量。)
所以,当你输入python时,系统就会直接查找名叫python.exe的文件并运行了。而本博客教的就是以正确的姿势来重命名这关键的python,exe文件而不影响对应版本的pip的工作。
具体操作
解决终端使用python语句
还是以python2与python3共存为例,介绍重命名的方法。
我是用anaconda自带的python3.6.5,并将以下路径加入全局变量path
E:\Anaconda3;E:\Anaconda3\Scripts
以及官网下载的python2.7.16
E:\python27;E:\python27\Scripts
当系统在环境变量中依次搜索,搜索到第一个python.exe时,即停止。
根据我系统变量的排序!是优先搜索到Anaconda中的python.exe,所以默认python调用的是python3.6.5
因此我们只需将E:\python27(python2安装环境)中的python.exe复制一份并重命名为python2.exe(不可以直接重命名原python.exe,因为python_install_path/Scripts中的pip.exe会调用原python.exe文件)
好,问题解决!
C:\Users\WilliamLambert>python2
Python 2.7.16 (v2.7.16:413a49145e, Mar 4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
C:\Users\WilliamLambert>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
解决多版本的pip问题
当你如上操作之后,我的环境下默认pip是先调用python3.6.5的pip,当我需要python2版本下的pip时,则直接输入pip2即可,以下是实例(anaconda中的python3.6.5是默认装了numpy的,而python2.7.16则没有)
C:\Users\WilliamLambert>pip install numpy
Requirement already satisfied: numpy in e:\anaconda3\lib\site-packages (1.17.0)
C:\Users\WilliamLambert>pip2 install numpy
Collecting numpy
Downloading https://files.pythonhosted.org/packages/a6/db/18770d6b8419188d56b8ddd9794cb34c2d9f1d272ed8b40fa1ee38a3ca06/numpy-1.16.4-cp27-cp27m-win_amd64.whl (11.9MB)
100% |████████████████████████████████| 11.9MB 1.5MB/s
Installing collected packages: numpy
Successfully installed numpy-1.16.4