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。