关联:实现windows下python2和python3的兼容
关联:实现windows下python2和python3的区别调用
【做梦及最后修改时间:2019/7/9凌晨】 【author by:kissloo/Wineco】 【mail:[email protected]】
重点在方案二和方案三:
方案二:使用py命令调用python
方案三:复制后重命名python.exe【很久以后做梦想到的】
默认的python为python2,可修改环境变量改变默认python版本
默认情况下,Linux python调用命令:
python2调用:python2/python、pip2/pip
python3调用:python3、pip3
正常安装并设置好python2和python3环境变量之后之后,
打开安装目录会发现,在windows中python2/3的可执行文件都叫python.exe,无法区别python.exe是哪个版本的,
此时,命令行调用python,会优先调用在环境变量path里靠上的python。
即:windows默认的python取决于环境变量里哪个版本的path环境变量更靠前
如图: 此时输入python命令时,python27中的python.exe会被优先调用
即:默认情况下,Windows python调用命令:
python2调用命令:python、pip2/pip
python3调用命令:pip3、**无法直接调用python3,除非每次都指定安装路径调用。**
简称:windows下python2/3不兼容
兼容问题根本原因:
在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有异曲同工之妙,
这是自己突然想到的一个办法,暂时没有发现什么兼容性问题,有遇到问题的老铁可以给我留言