Python2及Python3如何實現(xiàn)兼容切換
由于歷史原因,Python有兩個大的版本分支,Python2和Python3,又由于一些庫只支持某個版本分支,所以需要在電腦上同時安裝Python2和Python3,因此如何讓兩個版本的Python兼容,如何讓腳本在對應(yīng)的Python版本上運行,這個是值得總結(jié)的。
對于Ubuntu 16.04 LTS版本來說,Python2(2.7.12)和Python3(3.5.2)默認同時安裝,默認的python版本是2.7.12。

當(dāng)然你也可以用python2來調(diào)用。

如果想調(diào)用python3,就用python3.

對于Windows,就有點復(fù)雜了。因為不論python2還是python3,python可執(zhí)行文件都叫python.exe,在cmd下輸入python得到的版本號取決于環(huán)境變量里哪個版本的python路徑更靠前,畢竟windows是按照順序查找的。比如環(huán)境變量里的順序是這樣的:

那么cmd下的python版本就是2.7.12。

反之,則是python3的版本號。
這就帶來一個問題了,如果你想用python2運行一個腳本,一會你又想用python3運行另一個腳本,你怎么做?來回改環(huán)境變量顯然很麻煩。
網(wǎng)上很多辦法比較簡單粗暴,把兩個python.exe改名啊,一個改成python2.exe,一個改成python3.exe。這樣做固然可以,但修改可執(zhí)行文件的方式,畢竟不是很好的方法。
我仔細查找了一些python技術(shù)文檔,發(fā)現(xiàn)另外一個我覺得比較好的解決辦法。
借用py的一個參數(shù)來調(diào)用不同版本的Python。py -2調(diào)用python2,py -3調(diào)用的是python3.


當(dāng)python腳本需要python2運行時,只需在腳本前加上,然后運行py xxx.py即可。
#! python2
當(dāng)python腳本需要python3運行時,只需在腳本前加上,,然后運行py xxx.py即可。
#! python3
就這么簡單。
同時,這也完美解決了在pip在python2和python3共存的環(huán)境下報錯,提示Fatal error in launcher: Unable to create process using '"'的問題。
當(dāng)需要python2的pip時,只需
py -2 -m pip install xxx
當(dāng)需要python3的pip時,只需
py -3 -m pip install xxx
python2和python3的pip package就這樣可以完美分開了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python+OpenCV圖片局部區(qū)域像素值處理改進版詳解
這篇文章主要為大家詳細介紹了Python+OpenCV圖片局部區(qū)域像素值處理的改進版,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
Python2和Python3中@abstractmethod使用方法
這篇文章主要介紹了Python2和Python3中@abstractmethod使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02
Blueprint實現(xiàn)路由分組及Flask中session的使用詳解
這篇文章主要為大家介紹了Blueprint實現(xiàn)路由分組及Flask中session的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
python安裝CLIP包出現(xiàn)錯誤:安裝.git報錯問題及解決
這篇文章主要介紹了python安裝CLIP包出現(xiàn)錯誤:安裝.git報錯問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
Django執(zhí)行python?manage.py?makemigrations報錯的解決方案分享
相信用過很多Django makemigrations的人都會遇到過makemigrations時會發(fā)生報錯,下面這篇文章主要給大家介紹了關(guān)于Django執(zhí)行python?manage.py?makemigrations報錯的解決方案,需要的朋友可以參考下2022-09-09
tensorflow使用tf.data.Dataset 處理大型數(shù)據(jù)集問題
這篇文章主要介紹了tensorflow使用tf.data.Dataset 處理大型數(shù)據(jù)集問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12

