iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
IT Operation

大學生的VirtualBox虛擬機與Ubuntu實戰30天系列 第 19

Day 19|在 Linux 中建立乾淨的 Python 專案虛擬環境

  • 分享至 

  • xImage
  •  

環境準備好後,接下來就要開始動手寫程式了。在 Linux 虛擬機裡開發,最常遇到的第一道難題通常不是寫 code,而是:「我要怎麼管理 Python 套件,才不會把虛擬機搞爛?」

今天我們就來聊聊為什麼不能隨便用 sudo pip install,以及如何用最標準、最乾淨的方式建立專案的「虛擬環境(venv)」。


1.為什麼不能直接在全域安裝套件?
在剛接觸 Linux 時,許多人習慣在需要第三方套件時直接執行:

sudo pip install <套件名稱>  # 不建議的操作方式

在較新版本的 Ubuntu中,直接執行此指令通常會被系統阻擋,並顯示 externally-managed-environment 警告。

阻擋安裝的原因:
1.保護系統核心組件:Ubuntu 內建的許多系統服務(例如套件管理輔助工具、網路管理模組)本身即依賴系統 Python 環境。若透過 sudo pip 任意升級底層函式庫,容易破壞系統套件相依性,導致核心服務異常。
2.避免多專案版本衝突:不同專案對於套件版本的要求各異(例如專案 A 依賴舊版函式庫,專案 B 則需使用最新功能)。若全數安裝於全域環境,將無法維持多專案並存的穩定性。

最佳解法:應為每一個獨立專案建立專屬的「虛擬環境」,將套件依賴完全侷限在專案目錄內。


2.安裝虛擬環境管理工具
在 VS Code 終端機中執行以下指令

sudo apt update
sudo apt install -y python3-venv python3-pip

安裝完成後,確認 Python 3 與相關套件是否就緒:

python3 --version

https://ithelp.ithome.com.tw/upload/images/20260918/20183886ed8UFhnR31.png


3.建立獨立的專案虛擬環境
(1)建立並進入專案目錄

mkdir -p ~/projects/demo_project
cd ~/projects/demo_project

(2)初始化虛擬環境

python3 -m venv .venv

(建立完成後,專案目錄下會產生一個包含獨立 Python 執行檔與函式庫目錄的 .venv 資料夾)


4.虛擬環境的操作流程
虛擬環境建立後,必須明確切換(啟動)終端機上下文,才能將後續的執行與安裝導向至該環境。
(1)啟動虛擬環境

source .venv/bin/activate
which python #確認虛擬環境是否已成功啟動
  • 成功啟動:輸出應指向專案目錄內部,例如:
    /home/user/projects/demo_project/.venv/bin/python

(2)安裝專案依賴套件
進入虛擬環境後,即可安心使用一般使用者的權限進行套件安裝(無需且不應使用 sudo):

pip install requests

此時下載的所有檔案僅會存放於當前目錄的 .venv/lib/ 結構內,完全不影響外部系統環境。

(3)離開虛擬環境
當開發告一段落需切換至其他工作時,執行:

deactivate #目前先不用執行

終端機提示列就會回復為原本的預設狀態。


5.設定 Python 直譯器
透過 VS Code 進行開發時,需同步告知編輯器當前專案所使用的直譯器路徑,以確保語法高亮、程式碼跳轉與智慧補全功能正確讀取虛擬環境中的套件。
(1)在 VS Code 中使用「開啟資料夾」載入 ~/projects/demo_project。
(2)建立測試檔案 main.py 並寫入程式碼

import requests

response = requests.get("https://api.github.com")
print(f"Status Code: {response.status_code}")

https://ithelp.ithome.com.tw/upload/images/20260918/20183886FsndJppp1I.png
(3)按下快捷鍵 Ctrl + Shift + P 開啟指令選擇區,搜尋並選擇:
Python: Select Interpreter。
(4)選擇系統自動偵測到的 .venv 環境(路徑通常顯示為 ./.venv/bin/python)。

清單中若只出現「全域 /usr/bin/python3」
1.點選清單中的 「輸入解譯器路徑... 」
2.接著點選 「尋找...」
3.在彈出的檔案選擇路徑中,依序點進去:
projects ➔ demo_project ➔ bin ➔ 點選 python3 (或 python)

選好後,VS Code 右下角的 Python 直譯器名稱就會從「全域」切換為我們剛建立的專案虛擬環境了。


6.產出與還原 requirements.txt
為了方便團隊協作或未來環境遷移,需將環境中的套件版本進行鎖定與記錄。

匯出套件清單
在虛擬環境啟動的狀態下執行:

pip freeze > requirements.txt

此指令會將當前環境中安裝的套件名稱與精確版本號寫入 requirements.txt。

還原與批次安裝
若將程式碼部署至其他主機,只需在建立並啟動新的虛擬環境後,執行以下指令即可完整復原開發環境:

pip install -r requirements.txt

|明日目標:開發環境就緒後,明天將透過一隻簡單的 Python 腳本,使用今日安裝的 requests 套件串接公開 API 抓取資料,實作在 VS Code 遠端環境下的執行與除錯流程。|


上一篇
Day 18|Powerlevel10k 主題與 Nerd Font 字型配置
下一篇
Day 20|在 Linux 虛擬環境中以 Requests 串接公開 API
系列文
大學生的VirtualBox虛擬機與Ubuntu實戰30天22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言