安裝 pip 安裝套件時發生問題
安裝失敗的原因有很多,在許多情況下,正確的解決方案就是與套件開發人員連絡。
常見的問題原因是嘗試安裝到您無權修改的位置。 例如,預設安裝位置可能需要系統管理權限,但根據預設,Python 沒有該權限。 最佳的解決方案是建立虛擬環境並在該處安裝。
某些套件包括需要 C 或C++編譯器才能安裝的機器碼。 一般來說,套件開發人員應該發佈預先編譯的版本,但通常不會。 如果您安裝 Build Tools for Visual Studio,並選取 C++ 選項,則其中部分套件可能會運作,但是在大部分情況下,您需要連絡套件開發人員。
使用 WSL 安裝 pip 時發生問題
在 Windows 子系統 Linux 版 (WSL 或 WSL2) 上安裝套件 (例如 Flask) 搭配 pip 時,例如 python3 -m pip install flask
,您可能會特別遇到如下的錯誤:
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))
after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection
object at 0x7f655471da30>: Failed to establish a new connection: [Errno -3]
Temporary failure in name resolution')': /simple/flask/
在研究這個問題時,您可能會陷入數個困境,而這些對 WSL Linux 散發套件都不特別具生產力。 (警告:在 WSL 上,不要嘗試編輯 resolv.conf
,該檔案是符號連結,修改它會變得非常棘手)。 除非您執行的是售後防火牆,否則可能的解決方案就是重新安裝 pip:
sudo apt -y purge python3-pip
sudo python3 -m pip uninstall pip
sudo apt -y install python3-pip --fix-missing
*進一步討論,位於 GitHub 上的 WSL 產品存放庫。感謝我們的使用者社群,將此問題貢獻至文件。
什麼是 py.exe?
您最終可能會在電腦上安裝多個版本的 Python,因為您正在處理不同類型的 Python 專案。 因為這些全都使用 python
命令,所以您使用的 Python 版本可能不明顯。 做為標準,建議使用 python3
命令 (或 python3.7
來選取特定版本)。
py.exe 啟動器會自動選取您已安裝的最新 Python 版本。 您也可以使用 py -3.7
之類的命令來選取特定版本,或使用 py --list
來查看可以使用的版本。 不過,只有在您使用從 python.org 安裝的 Python 版本時,.py 啟動器才會運作。從 Microsoft Store 安裝 Python 時,不會包含 py
命令。 若為 Linux、macOS、WSL 和 Microsoft Store 版本的 Python,您應該使用 python3
(或 python3.7
) 命令。
為什麼執行 python .exe 會開啟 Microsoft Store?
為了協助新使用者尋找妥善安裝 Python 的方式,我們已新增捷徑至 Windows,將您直接帶往 Microsoft Store 中發佈的最新社群套件版本。 此套件可以輕鬆地安裝,而不需要系統管理員權限,而且會將預設 python
和 python3
命令取代為真正的命令。
執行搭配任何命令列引數的捷徑可執行檔將會傳回錯誤碼,指出尚未安裝 Python。 這是為了防止批次檔和指令碼在可能非預期的情況下開啟 Store 應用程式。
如果您使用 python.org 中的安裝程式來安裝 Python,並選取 [新增至路徑] 選項,新的 python
命令會優先於捷徑。 請注意,其他安裝程式可能會以低於內建捷徑的優先順序來新增 python
。
您可以停用捷徑而不安裝 Python,方法是從 [開始] 開啟 [管理應用程式執行別名]、尋找 [應用程式安裝程式] Python 項目,並將它們切換為 [關閉]。
當我複製並貼上檔案路徑時,為何不能在 Python 中使用它們?
Python 字串會針對特殊字元使用「逸出」。 例如,若要在字串中插入換行字元,請鍵入 \n
。 由於 Windows 上的檔案路徑使用反斜線,因此某些部分可能會轉換為特殊字元。
若要將路徑貼入為 Python 中的字串,請新增 r
前置詞。 這表示它是 raw
字串,而且除了 \” 以外,不會使用任何逸出字元 (您可能需要移除路徑中的最後一個反斜線)。 因此,路徑可能如下:r"C:\Users\MyName\Documents\Document.txt"
在 Python 中使用路徑時,建議使用標準 pathlib 模組。 這可讓您將字串轉換為 Rich 格式的 Path 物件,以一致方式執行路徑操作,不論其是否使用正斜線或反斜線,都可讓您的程式碼在不同的作業系統上更好地運作。
什麼是 PYTHONPATH?
Python 會使用 PYTHONPATH 環境變數來指定可從中匯入模組的目錄清單。 執行時,您可以檢查 sys.path
變數,以查看當匯入某個模組時,將會搜尋哪些目錄。
若要從命令提示字元設定此變數,請使用:set PYTHONPATH=list;of;paths
。
若要從 PowerShell 設定此變數,請在啟動 Python 之前,才使用 $env:PYTHONPATH=’list;of;paths’
。
不建議透過環境變數設定全域設定此變數,因為任何版本的 Python 都可使用它,而不是您想要使用的版本。
哪裡可以找到封裝和部署方面的協助?
Docker: VSCode 延伸模組可協助您快速封裝和部署 Dockerfile 和 docker-compose.dev.debug.yml 範本 (為您的專案產生適當的 Docker 檔案)。
Azure Kubernetes Service (AKS) 可讓您部署和管理容器化應用程式,同時依需求調整資源。
如果我需要在不同的電腦上工作,該怎麼辦?
設定同步可讓您使用 GitHub 同步處理不同安裝之間的 VS Code 設定。 如果您在不同的電腦上工作,這有助於讓您的環境在其上保持一致。
如果我習慣使用 PyCharm、Atom、Sublime Text、Emacs 或 Vim,該怎麼辦?
VSCode 延伸模組 Keymaps 可以協助您的環境在家一樣沒有問題。
Mac 快速鍵如何對應至 Windows 快速鍵?
在 Windows 電腦與 Macintosh 之間有些鍵盤按鈕和系統快速鍵稍有不同。 此 Mac 到 Windows 轉換指南涵蓋基本概念。