Byte Ebi's Logo

Byte Ebi 🍤

每天一小口,蝦米變鯨魚

設定 Python 開發環境

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

Ray

第一次在工作環境裡面用 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

如果不做額外設定,pythonpip 指令會變成 python3pip3
我是習慣了所以不想額外設定,萬一不小心移除了 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 神器

最新文章

Category

Tag