在Python開發中,你是否遇到過這樣的困擾:想給項目A安裝Django 1.11,又想給項目B安裝Django 2.2,結果安裝到全局後,項目A運行正常,項目B卻因爲版本衝突報錯?這就是“依賴混亂”的典型問題——不同項目需要不同版本的第三方庫,全局安裝會互相覆蓋,導致項目無法正常運行。

什麼是虛擬環境?

虛擬環境就像每個項目的“獨立小房間”,每個房間裏有自己的Python解釋器和依賴庫,互不干擾。這樣,項目A的Django 1.11不會影響項目B的Django 2.2,也不會污染全局Python環境。

爲什麼選擇virtualenv?

virtualenv是Python中最常用的虛擬環境工具之一,輕量、開源且跨平臺。它能幫你快速創建、管理和隔離不同的Python環境,是解決依賴混亂的“標配工具”。

安裝virtualenv

首先確保你的電腦已安裝Python和pip(Python包管理器)。打開命令行,輸入以下命令檢查Python版本:

python --version  # 或 python3 --version

如果顯示Python版本(如Python 3.8.10),說明已安裝。接下來用pip安裝virtualenv:

pip install virtualenv  # 如果是Python3,推薦用pip3避免版本混淆

安裝完成後,驗證是否成功:

virtualenv --version  # 輸出類似 "virtualenv 20.16.6" 即成功

創建虛擬環境

假設你的項目文件夾是my_project,先進入項目目錄:

cd my_project  # Windows用 cd 路徑,如 cd C:\Users\你\my_project

在項目目錄下執行以下命令創建虛擬環境(venv是虛擬環境的名稱,可自定義,如myenv):

virtualenv venv  # 生成名爲venv的虛擬環境

執行後,項目目錄會新增一個venv文件夾,裏面包含獨立的Python解釋器和依賴庫。

激活虛擬環境

創建完成後,需要激活虛擬環境才能使用其中的Python和pip。不同系統激活命令不同:

  • Windows(命令提示符CMD)
  venv\Scripts\activate.bat
  • Windows(PowerShell)
    先設置執行策略(僅首次需要):
  Set-ExecutionPolicy RemoteSigned -Scope CurrentUser  # 按Y確認

再激活:

  venv\Scripts\Activate.ps1
  • Mac/Linux
  source venv/bin/activate

激活成功後,命令行提示符會顯示(venv),表示已進入虛擬環境。

使用虛擬環境安裝依賴

在激活的虛擬環境中,用pip安裝的庫會僅存於該環境,不會影響全局Python。例如安裝requests庫:

pip install requests  # 此時requests僅安裝在venv環境中

查看已安裝的依賴:

pip list  # 顯示當前環境的所有依賴

退出虛擬環境

如果需要回到全局環境,在命令行執行:

deactivate

虛擬環境前綴(venv)會消失,恢復正常命令行。

刪除虛擬環境

直接刪除項目目錄下的venv文件夾即可,虛擬環境會被徹底移除。

小技巧

  • 指定Python版本:如果系統有多個Python版本,可創建時指定解釋器:
  virtualenv --python=python3.8 venv  # 使用Python3.8創建venv環境
  • 共享依賴:項目開發時,可將依賴列表導出爲requirements.txt
  pip freeze > requirements.txt  # 導出依賴

他人可通過pip install -r requirements.txt快速安裝相同依賴。

總結

虛擬環境是Python開發的“必備神器”,它讓不同項目的依賴徹底隔離,避免版本衝突。通過virtualenv,你可以輕鬆創建、激活、使用和刪除獨立環境,讓開發更高效、更清爽。

小夜