Python 項目開啓,這個錯千萬不能犯
開始一個 Python 項目?作爲開發人員,您經常會發現自己同時處理多個項目。如果您是這種情況,那麼虛擬環境就是您的朋友。它們能夠幫助您在處理多個 Python 項目時,克服包衝突和依賴方面的難題。
在Python 編程的上下文中,虛擬環境意味着一個獨立的位置,允許您爲Python 項目維護單獨和隔離的環境。激活時,它會對您的終端環境進行調整,以使用該隔離的 Python 設置。虛擬環境允許您使用多個版本的 Python 和其他包,而不會相互衝突。此過程在 Windows、Linux 和 macOS 等操作系統中是一致的。
要使用虛擬環境,您首先要創建它,激活它,在其中爲您的項目安裝必要的包,並且當您完成項目工作時,最後停用環境。(我稍後將介紹所有步驟。)
當您首次創建虛擬環境時,它將會在您的項目目錄裡創建一個新的文件夾。虛擬環境存在於這個文件夾中。Python 解釋器的副本和一些必要的文件放置在這個文件夾中。此副本充當您項目的主要 Python 安裝程序。它還存儲一個 Scripts(Windows)或 bin(Linux)文件夾,其中包含激活和停用腳本,因此您可以在全局 Python 和隔離版本之間切換。
激活環境後,您的 shell 環境會發生變化,使命令行使用虛擬環境中的 Python 解釋器和庫。在幕後,環境的PATH變量將會被更新。虛擬環境的“bin”(Windows 上的“Scripts”)文件夾被添加到 PATH 的開頭,這告訴您的終端首先查看那裡。此外,您的提示符會更改以反映更新。
在虛擬環境中安裝 Python 包時,它通常安裝在“lib/pythonX.X/site-packages”(Windows 中的“Lib\site-packages”)文件夾中,而不是全局 Python 系統中。每個環境都有自己的“site-packages”目錄,其中保存了所有已安裝的庫和依賴項。這使每個項目相互隔離,並且不會與其他項目或全局包發生衝突。
假設您同時處理多個Python 項目。其中一個項目有點舊。兩個項目都需要 Django 模塊。然而,舊項目需要 Django 版本 3,而較新的項目需要 Django 版本 4。起初,您可能考慮在系統上安裝兩個版本。
然而,這是不可能的,如果您嘗試這樣做,您將收到錯誤。因此,您不能同時安裝同一包的兩個不同版本。即使您設法安裝了,後安裝的版本也會覆蓋先前安裝的版本。此外,當您將一個包導入到您的 Python 代碼中時,您無法定義使用哪個版本。所以,這是您一次只能擁有一個包版本的又一個原因。
現在,如果您想在兩個項目上工作,您得先安裝一個 Django 版本,在這個項目上幹活兒,然後把它卸載掉,再安裝另一個版本,切換到另一個項目,依此類推。這一點都不實際。這只是一個小例子。您可能會面臨更多像這樣複雜的依賴衝突。
虛擬環境解決了這個問題。您可以爲每個項目創建一個新環境,安裝所需的包和依賴項,而不必擔心任何衝突和錯誤。這是個很快的例子,我給兩個不同的項目裝了兩個不同版本的 NumPy。
對於這個示例,我爲兩個獨立的項目設置了兩個虛擬環境。然後我成功安裝了兩個不同版本的 NumPy。在這裡,projectA 使用的是 2.1.1 版本,而 projectB 使用的是 2.0.0 版本。
使用虛擬環境還有一個好處,就是當您想跟別人合作或者分享您的項目的時候。通過使用“requirements.txt”文件,您可以定義所有的依賴項,然後可以在另一臺機器的新環境中重新創建。
虛擬環境就是您創建的一個目錄,您把所有項目文件和相關的包都存放在裡面。爲了演示,我首先要創建一個目錄來設置環境。
mkdir programming
cd programming
在這個新創建的目錄中,我將創建一個虛擬環境。
在大多數 Linux 發行版中,Python 通常是預先安裝的。如果沒有,您可以在 Linux 上安裝 Python,使用您的包管理器。然後使用此命令安裝虛擬環境:
sudo apt 安裝 python3-venv
之後,您可以創建虛擬環境。您需要爲環境命名。然後運行以下命令:
python3 -m venv my_virt_env
就我而言,我將其命名爲'my_virt_env'。您可以選擇任何合適的名稱。
您首先需要做的是在 Windows 上安裝 Python。安裝時,確保將 Python.exe 添加到系統路徑。導航到您想要創建虛擬環境的文件夾。打開您首選的命令行工具,然後運行:
python -m venv myenv
創建虛擬環境是不夠的。您需要使用文件夾內的激活文件來激活它,從而開始使用。如果您成功激活了虛擬環境,您會注意到命令行提示符開頭括號內的文件夾名稱。
要在 Linux 上激活虛擬環境,請運行:
來源 my_virt_env/bin/activate
記住使用您爲虛擬環境所使用的相同目錄名稱。
現在您已激活虛擬環境,可以在其中安裝 Python 包,如下所示:
python -m pip 安裝 包名稱
一旦您安裝了一些包,可以使用此命令檢查它們的版本:
pip 列出
如果您想退出虛擬環境,那麼運行:
deactivate
括號內的環境名稱應當從命令行提示符中消失。
要在 Windows 上激活環境,運行:
myenv\Scripts\activate # CMD
.\myenv\Scripts\Activate.ps1 # PowerShell
要在這個環境中安裝一個包,請使用此命令:
python -m pip 安裝 package_name
您可以通過運行以下命令列出已安裝的包:
pip 列表
如果您想要退出虛擬環境,請運行:
deactivate
當您停用虛擬環境時,就會返回到全局 Python 設置。
設置好虛擬環境後,您就可以開始 用 Python 編碼 而不必擔心不同的包版本、衝突和錯誤。對於本指南,我使用了 venv 工具。還有其他工具,如 Virtualenv 和 Conda。您可以隨意探索它們。如果您是 Python 新手, 從基礎開始 並構建您的第一個項目。