python3.8和3.7共存,Windows10上解决python3.7与python3.8共存的问题

背景:因为一些原因,需要同时用到python3.7的32位与python38. 平时以3.8 64位为主环境。

python,pip,pip3,都是运行在3.8下;

python37,pip37,pip3.7都是运行在3.7下;

一、分别安装python3.7,python3.8,确保3.7与3.8运行都正常

可能踩到的坑,安装完python3.7后,3.7运行正常。安装完python3.8后,3.8运行正常,再次运行3.7时一直报错,如下:

Fatal Python error: initfsencoding: unable to load the file system codec

ModuleNotFoundError: No module named 'encodings'

哪怕是卸载3.7与3.8,重启系统后再次仅安装3.7,环境变量也指向3.7,但就是报上面的错误。

解决办法:设置PYTHONPATH环境变量,指向:

PYTHONHOME=C:\Users\dengq\AppData\Local\Programs\Python\Python37-32

PYTHONPATH=%PYTHONHOME%\DLLs;%PYTHONHOME%\Lib;%PYTHONHOME%\Lib\site-packages

然后3.7就好了,不报上面的错误了,即使再把上面的两个环境变量删除,重启系统,也是好的,很奇怪的问题。

二、修改3.7中pip.exe文件

按照如下链接中所述,修改3.7中pip.exe的名称与二进制文件内容

修改pip.exe二进制文件中python.exe的位置

把python37-32\python.exe改名与python37.exe

把python37-32\pythonw.exe改名与pythonw37.exe

把python37-32\Scripts\pip.exe改名与pip37.exe

按照上面链接中所述,修改pip37.exe文件中引用的python.exe路径,改为引用python37.exe文件。

网上的文章都是到这一步就可以了,但我又踩到一坑,修改完成后,

运行python37.exe正常

运行pip37.exe报错

补充知识:安装python时pip.exe中写死了引用的Python.exe文件的绝对路径,因为我们修改python.exe文件的名称,所以需要同步修改pip.exe中引用的路径,否则会报找不到python.exe的错误

三、重新安装3.7中的pip

前提:

运行python37.exe正常

运行pip37.exe报错

运行完以下命令后,会在python37-32\Scripts目录下重新生成pip.exe,pip3.exe,pip3.7.exe。仅保留一个且改名为pip37.exe,另外的所有文件全部删除

python37 -m pip install --upgrade pip --force-reinstall

采用此命令重新安装pip时,pip.exe中会自动指向python37.exe文件,不会像初次安装那样指向python.exe

[引用原谅链接](https://blog.csdn.net/weixin_42101177/article/details/102971339)

最终环境变量设置,以下目录都需要加入到PATH中:

python37-32;python37-32\Scripts;python38;python38\Scripts;

你可能感兴趣的:(python3.8和3.7共存)