Windows下python2与python3兼容性完美解决办法

@windows下python2与python3兼容性完美解决办法

关联:实现windows下python2和python3的兼容
关联:实现windows下python2和python3的区别调用

【做梦及最后修改时间:2019/7/9凌晨】 【author by:kissloo/Wineco】 【mail:[email protected]

重点在方案二和方案三:
方案二:使用py命令调用python
方案三:复制后重命名python.exe【很久以后做梦想到的】

1、在inux中python2与python3兼容

默认的python为python2,可修改环境变量改变默认python版本

默认情况下,Linux python调用命令:
python2调用:python2/python、pip2/pip
python3调用:python3、pip3

2、Windows python2与python3不兼容

正常安装并设置好python2和python3环境变量之后之后,
打开安装目录会发现,在windows中python2/3的可执行文件都叫python.exe,无法区别python.exe是哪个版本的
此时,命令行调用python,会优先调用在环境变量path里靠上的python。
即:windows默认的python取决于环境变量里哪个版本的path环境变量更靠前
此时python27会被优先调用
如图: 此时输入python命令时,python27中的python.exe会被优先调用

   即:默认情况下,Windows python调用命令:
    python2调用命令:python、pip2/pip
    python3调用命令:pip3、**无法直接调用python3,除非每次都指定安装路径调用。**
    简称:windows下python2/3不兼容

3、如何解决Windows中python版本的兼容问题?

兼容问题根本原因:

在windows中python2/3的可执行文件都叫python.exe

方案一【不建议】:修改python.exe为python3.exe

将python安装目录下的python.exe重命名为python2.exe/python3.exe,

此时系统能够很明白的调用各版本的python。

//不建议修改python.exe为python3.exe,会造成一些命令无法正常运行

方案二:使用py命令调用python

利用python安装后自带的py命令,能够识别调用python2/3

py -3		#调用python3
py -3 1.py 	#调用python3执行1.py

py -2		#调用python2
py -2 1.py 	#调用python2执行1.py

在所有需要指定版本的地方使用py -2/3代替
举例:使用pip方法

py -2 -m pip install XXXX
py -3 -m pip install XXXX

当指定脚本使用python2/3运行时,只需在脚本文件开头加上,【#! python2/3】
举例:

```
#! python2
print 1234567
```
然后运行py xxx.py

缺点:正常运行脚本时。每次都会多那么一节。显得不那么方便

方案三:复制后重命名python.exe【做梦想到的】
前面【方案一:不建议修改python.exe为python3.exe】
原因:python内置的一些命令会调用python.exe这个文件,如果将其修改后会造成一些命令无法正常运行*
但是【方案二:每次使用py命令】,就显得有些不方便

那能不能换一种思路,在方案一的思路上做一些优化呢?
解决思路:

分别在python2/3目录下,将python.exe复制为python2/3.exe,
注意,保留原先的python.exe文件。

在这里插入图片描述
在不修改python.exe的情况下,去别的python2/3,以后就可以使用python2/3调用命令了。

仔细检查可以发现这个思路和pip.exe\pip2.exe\pip3.exe有异曲同工之妙,
这是自己突然想到的一个办法,暂时没有发现什么兼容性问题,有遇到问题的老铁可以给我留言

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章