(更新)
可以透過在安裝python3時附加的py檔案 (路徑 C:\Windows\py.exe)
帶版本參數,做到一樣的事情
py -2py -3
要指定pip版本時,再加個 -m pip
py -2 -m pippy -3 -m pip
同時使用python2、python3 環境
所以電腦中必須存在兩個大版本差異的python
此時我會希望在Windows的CMD中
輸入 python2 時使用 python2
輸入 python、python3 時都能導向到 python3
希望在安裝套件時,
輸入 pip2 時安裝到 python2環境
輸入 pip、pip3 時安裝到 python3環境
安裝好python2、python3後,找到他們的安裝路徑
python的預設安裝路徑:
全域(給All User)路徑在 C:\ 底下
ex: C:\Python27
區域(給目前User)路徑在 C:\Users\GJLMoTea\AppData\Local\Programs\Python 底下
ex: C:\Users\GJLMoTea\AppData\Local\Programs\Python\Python39
這很長,每次都記不住位置
設定系統環境變數
關於環境變數
設定環境變數PATH的目的,
是為了讓電腦知道,當使用者在CMD下了python的指令後,
系統會到這個路徑底下尋找 python.exe 來執行
環境變數順序
環境變數PATH分成兩個區塊:個人的使用者變數、系統變數
對於環境變數來說,找尋的順序是這樣的:
電腦會先從系統大範圍設定,按上至下找
在系統大範圍中找不到,再去找個人小設定,按上至下找
也就是說,當一找到就符合的選項就返回,後面的即使符合也不會被電腦繼續往下找
所以設定是吃第一個符合的
也就代表橘框的優先性 > 綠框
了解python安裝路徑、以及吃設定的優先順序後,再來往下執行複製、調整環境變數
複製執行檔檔案
在python3資料夾底下,把 python.exe 複製 取名為python3.exe
pip套件在Script資料夾底下
點擊Script進來,也確認有pip.exe、pip3.exe兩份
由於上面提到的環境變數運作邏輯
因為系統中有兩個Path
只要在 使用者變數Path 或 系統變數Path 任一地方中(並確保另一個Path中 沒有Python路徑)
依照上面是python3、下面是python2的方式去放python資料夾及Script資料夾位置
這樣就能解決啦
設定完成後,記得重新打開CMD才會生效
下 -v 來確認一下版本
> python -v> pip -v
另外在過程中我有遇到一些問題
是在Windows市集中安裝的Python,後來我把他移除沒再用到(卻沒完全移除乾淨)
這部分放在文章最底部
當然,題外話
因為在安裝Python時就能選擇是否安裝 for All User(全域) 或者 current User(區域)
比較好的方式是
將 C:\python27 放在系統變數中
將 C:\Users\GJLMoTea\AppData\Local\Programs\Python\Python39 放在個人使用者變數
才是更符合兩者的設計的
可是這樣放 沒辦法達到我一開始想要的預設順序
因為python2的層級比python3來的高
變成呼叫python時會先吃到 C:\python27
而不是 C:\Users\GJLMoTea\AppData\Local\Programs\Python\Python39
啊我也懶得重新安裝python3(for All User)
確認python順序
可以透過where 指令來確認CMD呼叫到的路徑及順序
> where python
當然也在環境變數中
開啟路徑後,點開 WindowsApps底下的Python
看來是之前在Windows 應用程式(市集)上面安裝、卻沒使用到,後來移除了
卻沒刪除乾淨
就果斷的把python.exe跟python3.exe移除
但要移除時發現刪不掉,有其他的應用程式占用
因為在Microsoft WindowsApps底下,這是普通的方法無法刪除的
錯誤 0x80070780
首先以管理者身分開啟CMD,用指令force方式刪除
cd C:\Users\自己的USER\AppData\Local\Microsoft\WindowsAppsdel /f python.exedel /f python3.exe
最後成功移除、皆大歡喜了
沒有留言:
張貼留言