本文目錄一覽:
python版本衝突,怎麼解決
首先,python不存在多個版本衝突問題,不是非得一山不容二虎的情況,相反,python可以安裝多個版本在同一電腦上,而且互不影響,但是偶爾有些小尷尬(你也可以理解為衝突,但並不是有一個版本就不能有另一個版本),比如終端界面運行python,和終端界面使用pip ,和默認哪個版本打開.py文件等,這個固然是個問題。
但是,從python3.6.x版本開始,這些所有問題都不是問題,在安裝python3.6時就已經為你自動解決以上的問題,然後運行的時候上面說到的小尷尬稍微注意一下就行。
(我電腦上現在就有python2和python3兩個版本,以我的電腦裝好的作為參考)
注意1:
終端界面運行python,如果有多個版本,那麼直接使用python,則會默認一個版本運行,而另一版本無法運行:
這裡我的電腦默認的版本就是python3
要使用python2就這樣:(python3也可以這樣)
注意2:
使用pip安裝第三方庫,同樣的,直接使用pip,會運行默認版本。
但是這樣的話就可以切換到想要的版本:
或者:
注意3:
打開.py文件:
選中py文件,然後鼠標右鍵,就有兩個不同版本讓你選擇了
這些都是python3.6.x版本開始自動搞定的,不需要設置註冊表,改名啥的
4.Python中pip與Anaconda中的衝突
我們在安裝Anaconda或者python的時候,都會將其添加進環境變量,這樣計算機才能找到軟件的位置,例如我們在cmd命令窗口輸入python,計算機就能根據環境變量找到python.exe文件打開。
Script文件夾存放可執行的exe程序,其中pip.exe就位於該文件下,假設我們將兩個應用的Script都添加進了環境變量,那麼執行pip的時候就只會有一個起作用。
例如:我們在 cmd 命令窗口輸入 pip freeze
這裡需要用 pip.exe install pytorch 來安裝 pytorch ,安裝其他應用同理。
如何解決模塊名稱衝突(python)?
如果你有兩個同名的模塊,那麼你只能導人它們中的一個——默認情況下,Python總是會選擇在模塊搜索路徑sys.path中最左邊的那一項。如果你偏愛的模塊和頂層腳本在同一目錄下,那就不成問題;由於頂層腳本的主目錄總是模塊搜索路徑中的第一項,因此它的內容總是會首先被自動定位。然而對於跨目錄的導入,模塊搜索路徑的線性本質意味着同名的文件會產生衝突。
要修復這一衝突,要麼避免同名文件。如果你需要同時訪問兩個同名的文件,那麼就要把兩個源文件分別放入子目錄中,這樣包導入目錄名稱將使得模塊引用唯一。只要外圍的包目錄名稱是唯一的,你就能訪問同名模塊中的任意一個,或是全部的兩個。
注意,如果你不小心為自己的模塊使用了一個名稱,而它碰巧和你需要使用的標準庫模塊的名稱相同,那麼也會出現這一問題。這是因為程序主目錄(或是模塊路徑中靠前的另一個目錄)下的本地模塊會隱藏和替換標準庫模塊。
要修復這種覆蓋,要麼避免使用和你需要的另一模塊相同的名稱,要麼把模塊放到一個包目錄下然後使用Python 3.X的包相對導入模型(包相對導入在2.X版本中是一個可選的功能)。在包相對導入模型下,普通導入會跳過包目錄,因此你可以獲取標準庫版本,但在必要時特殊的點號開頭導入語句仍然可以選取同名模塊的本地版本。
原創文章,作者:XBRSH,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/313519.html