Python的虛擬環境是什么?venv 如何使用?

python虛擬環境是一個隔離的運行空間,允許不同項目使用不同版本的包。創建虛擬環境需使用venv模塊并運行python3 -m venv .venv。激活方式:linux/macos用source .venv/bin/activate,windows用.venvscriptsactivate。安裝包使用pip install 包名,查看已安裝包用pip freeze,導出依賴用pip freeze > requirements.txt,遷移時復制代碼和requirements.txt并在新機器上運行pip install -r requirements.txt。退出虛擬環境使用deactivate命令。除venv外,還有virtualenvconda工具可供選擇。

Python的虛擬環境是什么?venv 如何使用?

Python的虛擬環境,簡單來說,就是一個隔離的Python運行空間。它允許你在不同的項目中使用不同版本的包,而不會互相干擾。venv是Python自帶的創建和管理虛擬環境的工具,用起來相當方便。

Python的虛擬環境是什么?venv 如何使用?

venv的使用方法其實挺簡單,下面詳細說說。

Python的虛擬環境是什么?venv 如何使用?

如何創建Python虛擬環境?

立即學習Python免費學習筆記(深入)”;

首先,你需要確保你的Python版本是3.3及以上,因為venv是從Python 3.3開始引入的。打開你的終端或命令行工具,導航到你的項目目錄,然后運行以下命令:

Python的虛擬環境是什么?venv 如何使用?

python3 -m venv .venv

這條命令會在你的項目目錄下創建一個名為.venv的文件夾(當然你可以取別的名字,但.venv是一種常見的約定)。這個文件夾包含了Python解釋器、pip以及一些其他的必要文件。

激活虛擬環境又該怎么操作呢?

創建好虛擬環境后,你需要激活它才能開始使用。激活方式取決于你的操作系統

  • linux或macos上:

    source .venv/bin/activate
  • windows上:

    .venvScriptsactivate

激活后,你的命令行提示符會發生變化,通常會在前面顯示虛擬環境的名字,例如(.venv)。這表示你現在正處于虛擬環境中。

如何在虛擬環境中安裝和管理包?

激活虛擬環境后,你可以使用pip來安裝和管理包。例如,要安裝requests庫,可以運行:

pip install requests

pip會將requests庫安裝到虛擬環境的site-packages目錄下,而不是全局Python環境中。這意味著只有在這個虛擬環境中,你才能使用requests庫。

使用pip freeze可以查看當前虛擬環境中安裝的所有包及其版本:

pip freeze

這個命令會輸出一個包列表,你可以將它保存到一個requirements.txt文件中,方便以后重建虛擬環境:

pip freeze > requirements.txt

如果需要重建虛擬環境,可以使用以下命令安裝requirements.txt中列出的所有包:

pip install -r requirements.txt

如何退出虛擬環境?

當你完成工作后,可以使用deactivate命令退出虛擬環境:

deactivate

執行這個命令后,你的命令行提示符會恢復到原來的狀態,表示你已經退出了虛擬環境。

虛擬環境遷移后如何重新配置?

有時候我們需要把項目連同虛擬環境一起遷移到另一臺機器上。直接復制.venv文件夾通常是不可取的,因為它可能包含絕對路徑,在新機器上可能會出錯。更好的做法是只復制項目代碼和requirements.txt文件,然后在新的機器上重新創建虛擬環境并安裝依賴。

首先,將項目代碼和requirements.txt文件復制到新機器上的目標目錄。然后,按照前面介紹的步驟創建虛擬環境并激活它。最后,使用pip install -r requirements.txt命令安裝所有依賴。

這樣,你就成功地在新機器上配置好了虛擬環境。

除了venv,還有其他的虛擬環境管理工具嗎?

當然有。雖然venv是Python自帶的,但還有一些其他的虛擬環境管理工具,例如virtualenv和conda。virtualenv是一個第三方庫,比venv更早出現,功能也更完善一些。conda則是一個更通用的包管理和環境管理工具,不僅可以管理python包,還可以管理其他語言的包。

選擇哪個工具取決于你的具體需求。如果你只需要管理Python包,并且喜歡使用Python自帶的工具,那么venv就足夠了。如果你需要更高級的功能,或者需要管理其他語言的包,那么可以考慮virtualenv或conda。

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享