在 Python 開發中,虛擬環境(Virtual Environment)是一種工具,用於創建獨立的 Python 執行環境。它允許不同的專案使用不同版本的 Python 解釋器和依賴套件,而不會相互干擾。
虛擬環境是透過拷貝或模擬一個獨立的 Python 解釋器及其 site-packages(套件存放目錄)來運行的。當虛擬環境被激活時,該環境的 Python 解釋器會覆蓋系統全域的 Python,從而執行該虛擬環境內的程式和安裝的套件。
開啟 Anaconda Navigator
在你的操作系統中搜尋並啟動 Anaconda Navigator。
建立新環境
在左側菜單選擇 "Environments"。
點擊右下角的 "Create" 按鈕。
輸入虛擬環境的名稱,例如 myenv。
選擇需要的 Python 版本(例如 Python 3.8 或 3.10)。
點擊 "Create",Anaconda 會自動設置好新的虛擬環境。
安裝所需套件
選擇剛剛建立的環境,點擊 "Not Installed" 篩選出尚未安裝的套件。
搜尋需要的套件(如 numpy, pandas 等),點擊前方的方框選取,然後點擊 "Apply"。
啟用虛擬環境
在 Anaconda Navigator 中,選擇環境後,可以直接開啟應用程式,如 python、 Jupyter Notebook、Spyder 等。
如果使用命令行啟用:conda activate webCrawler
這時候,命令行提示符會變成 (webCrawler),表示你已經進入了 webCrawler 虛擬環境。
conda info --envs
這會列出所有已經創建的虛擬環境,並顯示當前啟動的虛擬環境。如果虛擬環境正在啟動,會在當前環境名稱旁邊顯示 *。
❯ conda info --envs
# conda environments:
#
base /opt/anaconda3
webCrawler * /opt/anaconda3/envs/webCrawler
website /opt/anaconda3/envs/website
在上面的例子中,webCrawler 環境是當前啟動的環境,因為它旁邊有 *
which python
例如,當你啟動名為 webCrawler 的虛擬環境後,which python 應該會返回類似下面的路徑:
/opt/anaconda3/envs/webCrawler/bin/python
如果環境已經啟動,這時候你應該看到指向虛擬環境中的 Python 路徑,而不是指向 Anaconda 的全域安裝。
conda install numpy
conda list
這會列出當前虛擬環境中安裝的所有套件。如果你看到的套件列表跟全域的套件不同,那麼表示你確實在虛擬環境中。
conda deactivate
如果你不再需要 website 這個環境並且想要刪除它,可以按照以下步驟操作:conda env remove --name website
conda info --envs
如果你只想刪除虛擬環境 website 中的 pandas 包,而不是刪除整個環境,
可以使用以下命令來移除 pandas:
步驟:
1.激活 website 環境:首先,你需要激活 website 環境,這樣你才能對其中的包進行操作。conda activate website
2.卸載 pandas 包:
在激活環境後,你可以使用 conda remove 命令來卸載 pandas 包。conda remove pandas
這個命令會將 pandas 從當前激活的環境中移除。
你可以使用以下命令來確認 pandas 是否已經被成功移除:conda list
這會顯示目前環境中已安裝的所有包。檢查列表中是否還有 pandas,如果已經沒有,則表示成功卸載
補充:如果使用 pip 安裝過 pandas,可以使用 pip uninstall:
pip uninstall pandas
如果你是在 website 環境中使用 pip 安裝了 pandas,則需要使用 pip 命令來卸載它
# 創建虛擬環境
python3 -m venv myenv
# 激活虛擬環境
# Linux / MacOS
source myenv/bin/activate
# Windows
myenv\Scripts\activate
# 停用虛擬環境
deactivate
虛擬環境中的操作
pip install package_name
套件將只安裝到該虛擬環境中,而不會影響全域環境。
查看虛擬環境中的已安裝套件:pip list
虛擬環境的檔案結構
假設虛擬環境名稱為 myenv,結構可能如下:
myenv/
├── bin/ # 虛擬環境的執行檔,例如 python, pip(Linux / MacOS)
├── Scripts/ # 虛擬環境的執行檔(Windows)
├── lib/ # 虛擬環境的 Python 標準庫及依賴套件
├── include/ # C/C++ 標頭檔案
├── pyvenv.cfg # 虛擬環境的設定檔
pip 和 conda 的差異在於,pip 會直接裝最新的;conda 會選擇相容性最高的版本安裝,而且在安裝之前會把要變更的東西都列出來,你確認之後他才會執行。
特性 | Anaconda 虛擬環境 | venv /virtualenv |
---|---|---|
操作方式 | 圖形界面或 Conda 命令行管理 | 主要依賴命令行操作 |
預設套件 | 包含多種科學計算工具 | 僅包含基礎 Python 套件 |
套件管理 | 使用 Conda,專為數據科學設計 | 使用 pip,通用的 Python 套件管理 |
依賴解決 | Conda 更智能,解決依賴衝突較容易 | pip 有時會遇到版本或依賴衝突 |
支援的語言 | Python、R、Julia 等 | 僅支持 Python |
靈活性 | 內置功能豐富,但相對封閉 | 靈活通用,可與其他工具搭配使用 |
適用場景 | 數據科學、機器學習 | 通用 Python 開發 |
啟動 VS Code
打開你的 .py 文件所在的目錄。
選擇 Conda 環境作為解釋器
手動添加環境(若需要)
檢查虛擬環境
編寫並運行代碼
現在,你在 VS Code 中撰寫和運行 .py 文件時,會使用 myenv 中的 Python 解釋器和相關套件。