設定 Python 開發環境
記錄在 Mac 上設定 Python 開發環境的步驟和安裝的套件

第一次在工作環境裡面用 Python 所以記錄一下環境設定,很多套件都是幾年前自學的時候沒用過的新東西
不小心曝露多久沒碰過 Python 了吧
Mac 電腦設定
有相依關係,必須照順序安裝!
Homebrew
Mac 電腦上的套件管理,用 mac 不裝這個真的不知道怎麼辦
而且現在在 Linux 上也可以用了!
安裝:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
oh-my-zsh
比較好用的 Terminal 介面,theme 我是習慣用 philips
安裝:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
pyenv
python 版本控制,類似 nvm 和 gvm 的東西
安裝:
brew install pyenv
python
就… python,我還是喜歡用 brew 安裝
安裝:
brew install python
如果不做額外設定,python
和 pip
指令會變成 python3
和 pip3
我是習慣了所以不想額外設定,萬一不小心移除了 brew 安裝的 python 至少保證其他軟體不會出問題
Homwbrew 有特別一篇文章說明:Homebrew and Python
pipx
可以想成 python 的 homebrew
在安裝每個套件時建立分離的環境,避免將 Python 工具安裝到全域,確保依賴隔離
並且可以在不啟動虛擬環境的情況下直接使用,也不需要 sudo 權限
安裝並設定 PATH:
brew install pipx
pipx ensurepath
ensurepath
用來確保使用 pipx
下載的 app 其執行檔位置有被加入至 PATH 環境變數中
Python 開發會用到的套件
在使用 python 開發時會用到的套件,先決條件是要安裝好 pipx
Black
符合 PEP 8 的 Coding Style 檢查器
安裝:
pipx install black
指令範例:
black ./ --check --verbose -l 100
可用參數
參數 | 用途 |
---|---|
–check | 只檢查不修改 |
–verbose | 顯示詳細資訊 |
-l 100 | 每行長度限制 100 字元 |
isort
符合 PEP 8 風格排序 import 順序
安裝:
pipx install isort
指令範例:
isort ./ --profile black --filter-files
可用參數
參數 | 用途 | 參考資料 |
---|---|---|
–profile black | 聲明使用 black 格式設定 否則和 black 同時的執行話會互相衝突 |
Built-in Profile for isort |
–filter-files | 過濾掉省略的檔案 | Filter Files |
Poetry
管理專案的依賴套件,可以理解成 Laravel 的 composer 或是 node.js 中的 npm
安裝:
pipx install poetry
和有其他套件管理的框架一樣,每次新專案 clone 下來都要執行安裝套件的指令
否則執行或是測試的時候相依套件會出現 無法解析匯入
或是 reportMissingImports
錯誤
安裝專案中的套件:
poetry install
如果出現錯誤訊息:
Error: The current project could not be installed: No file/folder found for package my-project If you do not want to install the current project use –no-root. If you want to use Poetry only for dependency management but not for packaging, you can disable package mode by setting package-mode = false in your pyproject.toml file. If you did intend to install the current project, you may need to set
packages
in your pyproject.toml file.
Poetry 找不到對應於 package my-project 的資料夾或檔案
也就是說,它不知道哪個目錄或檔案是你的實際 Python 套件
當 Poetry 找不到與 name = "my-project"
對應的 Python 套件資料夾時
Poetry 預設會假設你有一個目錄叫做 my_project
或明確指定的路徑
所以它報錯說找不到這個 package
Poetry 會將目錄的 dash
-
轉成 underscore_
資料夾名為my_project
,即pyproject.toml
中 name 把-
換成_
所以如果是打算打包自己的專案,則需要有個資料夾與專案名稱對應
如果不是要打包,只是想用 Poetry 管理依賴,則可以在執行時使用額外參數 --no-root
來解決
poetry install --no-root
常用指令
指令 | 用途 | 選項 |
---|---|---|
poetry init | 初始化 Python 專案 | |
poetry add | 安裝套件 | --dev 聲明套件只在開發環境使用 |
poetry remove | 移除指定套件 | |
poetry show | 列出套件清單 | --tree 列出所有套件的依賴關係 |
poetry update | 更新套件 | |
poetry run | 在虛擬環境中執行指令,或是檔案 | |
poetry lock | 建立套件的相依性鎖定檔案 | |
poetry env activate | 啟用虛擬環境 | |
poetry env info | 列出虛擬環境資訊 | |
poetry env list | 列出虛擬環境 | |
poetry env remove | 移除虛擬環境 | |
poetry env use | 切換虛擬環境 |
VS Code 設定
就用免費的 VS Code 開發吧!
雖然有聽說 PyCharm 很好用,而且 Community 版本還免費。不過之前被 PhpStorm 綁定太多年,每次遇到同事不是用 PhpStorm 的時候就很難提供協助,所以從之前寫 Golang 的時候就開始使用 VS Code 作為開發工具了。
工具類
如果懶得裝太多 IDE,或是電腦權限不夠,可以把常用的工具全部裝在 Vscode 裡
套件 | 用途 |
---|---|
MySQL Shell for VS Code | 連線 MySQL |
PostgreSQL | 連線 PostgreSQL,雖然沒圖片看起來有點可疑 |
Redis for VS Code | 連線 Redis |
開發類
套件 | 用途 |
---|---|
Remote Development | 連遠端開發機 |
pylance | 語法高亮+自動完成 |
docstring | 快速生成函式文件 |
Git Graph | 輕鬆查看 Git Graph |
GitLens | Git Blame 神器 |