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有異曲同工之妙,
這是自己突然想到的一個辦法,暫時沒有發現什麼兼容性問題,有遇到問題的老鐵可以給我留言

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