Linux 上的 Python 開發環境設定
from Pixabay
2025/06/15
更新:刪除 yadm 相關內容,減少閱讀負擔。日後會專文介紹使用 yadm 建立開發環境的流程。
軟體界有一句名言叫「吃自己的狗糧」,通常指的是自己開發的工具,自己先使用。而每次重設 Linux 開發環境時,我也都在吃自己的狗糧——看自己寫的教學文章。
不誇張,就是一篇篇看,把指令複製貼上,一步一步將環境設定到位。
做了好幾次以後,這次不禁想到:「咦?我乾脆整理成一篇就好了啊!」
本文主旨
沒錯!本篇講述的是:當我拿到一個全新的 Linux VM,為了開發方便,一定會安裝、設定的工具——主要基於「Python 後端」角度。
內容參考自以往數篇文章,且只關注在建立開發環境的必要步驟,並適時給出一些額外的提醒與建議。
如此一來,我們就不必在文章間穿梭,力求節省時間、一步到位!
本文是以 Ubuntu 24.04 實作,如果你用的是別的 Linux 發行版,可能會有一些差別,這部分還請留意。
什麼是 dotfiles?
dotfiles 指的是以.
開頭的「設定檔」,例如.zshrc
、.vimrc
、.gitconfig
等。
使用 zinit、Powerlevel10k、pyenv 之前,通常都需要先設定好 .zshrc
。這是為什麼我們需要了解 dotfiles,尤其是最常用的——.zshrc
。
如果你有用工具來管理 dotfiles(如 .zshrc
、.zprofile
),那麼以下所有關於 .zshrc
內容的新增、修改,都可以跳過,直接用工具同步即可。
如果你還沒接觸過 dotfiles 管理工具,也可以先照本文步驟手動設定,日後有需要再學習相關工具。
前言到此,讓我們開始吧!
一、設定 SSH 連線
2025/06/15
更新:補上了 SSH 連線設定文章。
建立 SSH 連線是開發環境設定的第一步,通常會有兩種常見需求:
- 本機電腦與遠端 VM 的連線。
- 遠端 VM 與 GitHub 的連線。(或其它 Git 服務)
詳細步驟可參考我寫的〈為 e2-micro VM 建立 SSH 連線:本機與 GitHub〉,裡面有完整說明如何設定這兩種連線。
二、設定 zsh、zinit、Powerlevel10k
參考原文:
安裝 zsh
1 | sudo apt-get update; |
將 zsh 設為登入時的「預設」shell
1 | sudo usermod -s /bin/zsh $USER |
提醒:請務必先確認 zsh 本身的安裝、設定沒問題,可以正常使用。否則登入後可能直接卡住,需要透過別的 admin 帳號來處理。
新增.zshrc
與.zprofile
1 | touch .zshrc |
安裝 zinit 套件管理器
1 | bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)" |
設定 zinit 套件
安裝完後,zinit 已經自動在.zshrc
新增部分內容,請接著繼續新增下列內容:
1 | # zsh 套件四天王 |
存檔後,重啟 shell。(如果要一併安裝 Powerlevel10k,可先不用重啟。)
安裝 Powerlevel10k 佈景主題
非常簡單,只要在 zinit 的設定內容後面,再加上這行即可:
1 | # Powerlevel10k |
存檔,重啟 shell,此時就會開始安裝 Powerlevel10k,隨即會進入「外觀樣式選擇與設定」畫面。
之後如果要重新設定,可使用指令p10k configure
。
三、設定 pyenv
安裝 dependency
1 | sudo apt-get update; |
安裝 pyenv
1 | git clone https://github.com/pyenv/pyenv.git ~/.pyenv |
設定 pyenv
這裡直接採用 pyenv 2.3.0 以後的設定方式,已大幅簡化操作——變得更加無腦、易用!——且 zsh 或 bash 在設定上不再有差別。
一律在.zshrc
或.bashrc
中,新增下列內容:
1 | export PYENV_ROOT="$HOME/.pyenv" |
pyenv 安裝 Python 3.10.10 並設為全域
1 | pyenv install 3.10.10 |
通常需要等待好一段時間,安裝才會完成。🐸
接著透過 pyenv,將系統全域的 Python 設定為 3.10.10(或其他版本):
1 | pyenv global 3.10.10 |
不安裝 pyenv-virtualenv
因為 Poetry 自帶了虛擬環境管理功能,容易和 pyenv-virtualenv 疊床架屋,徒增管理上的混淆,所以我現在一律只用 Poetry + venv 來管理 Python 虛擬環境。
這也是我目前覺得最簡潔的做法。
四、設定 Poetry
安裝 Poetry
1 | curl -sSL https://install.python-poetry.org | python3 - |
新增poetry
指令至 PATH
在.zshrc
新增以下內容:
1 | export PATH=$PATH:$HOME/.local/bin |
修改config
,改用.venv
虛擬環境
預設為false
,Poetry 會在獨立目錄下建立虛擬環境,而名稱很冗長!改成true
以後,則直接在專案中建立虛擬環境,且名稱固定為.venv
。
1 | poetry config virtualenvs.in-project true |
五、安裝 Docker
安裝細節常常隨著 Docker 版本的更新而有所變動,建議直接看官方文件即可。
安裝完成後,為了不必每次都要sudo
才能執行 Docker 相關指令,要把當前使用者加入 Docker 群組:
1 | sudo usermod -aG docker $USER |
附帶一提,新版的docker compose
改以 plugin 的形式安裝,變成 Docker client 的子命令,而不再採用舊版的docker-compose
。