Python CLI 工具封裝教學:用 setup.py 讓指令在任何地方都能執行 - Mr. 蔡大痣數位轉型顧問 - WordPress 及 SEO 專家

Python CLI 工具封裝教學:用 setup.py 讓指令在任何地方都能執行

1003 瀏覽
2026-04-24 更新
Python CLI 封裝教學封面圖

你有沒有寫過一個 Python 工具,每次要用都得先 cd
進去那個目錄,然後 python main.py ...

這篇文章要解決這個問題。透過 Python 標準的封裝機制,讓你的工具變成像
gitnpm 一樣可以在任何地方直接呼叫的全域指令。

最終效果

封裝完成後,從任何目錄都能直接執行:

# 封裝前 cd /path/to/my-tool python main.py list --site aroot  # 封裝後 orca-wp list --site aroot

前置條件

你已經有一個用 TyperClick 寫好的 CLI 工具,進入點大概長這樣:

# main.py import typer  app = typer.Typer()  @app.command() def hello(name: str):     print(f"Hello, {name}!")  if __name__ == "__main__":     app()

Step 1:建立 setup.py

在專案根目錄建立 setup.py

from setuptools import setup  setup(     name="my-tool",     version="1.0.0",     description="我的 CLI 工具",     py_modules=["main"],          # 你的主程式檔名(不含 .py)     install_requires=[         "typer>=0.9",         "rich>=13",     ],     entry_points={         "console_scripts": [             "my-tool=main:app",   # 指令名稱=檔案名稱:typer app 變數         ],     },     python_requires=">=3.10", )

關鍵在 entry_points 裡的 console_scripts

  • my-tool:安裝後可在 terminal 使用的指令名稱
  • main:appmain.py 裡名為 app
    的物件(Typer / Click app)

Step 2:用 pip install -e . 安裝

pip install -e .

-e 是 editable 模式,意思是:安裝後直接指向你的原始碼目錄,修改
main.py 立即生效,不需要重新安裝。

安裝完成後確認:

which my-tool # → /Users/yourname/anaconda3/bin/my-tool  my-tool --help

多個模組的情況

如果你的工具拆成多個 .py 檔,在 py_modules
裡列出所有需要的模組:

setup(     ...     py_modules=["main", "wp_client", "utils"],     ... )

如果是整個套件目錄(有 __init__.py),改用
packages

from setuptools import setup, find_packages  setup(     ...     packages=find_packages(),     ... )

如何讓新機器也能安裝

把專案放到 Git(GitHub / Bitbucket),新機器上的流程就是:

git clone [email protected]:yourname/my-tool.git cd my-tool pip install -e .

後續更新只需要:

git pull   # 不需要重新 pip  install

注意事項

  • 指令名稱建議用小寫加連字號,例如
    orca-wpmy-tool,可讀性比 mytool
  • 含帳密的設定檔(如 config.json)記得加進
    .gitignore
  • 如果同一環境有多個 Python 版本,確認 pip
    對應的是你要用的版本(可用 pip3 或指定 python3 -m
    pip
  • Anaconda 環境下安裝的指令會在 ~/anaconda3/bin/,確認這個路徑在
    $PATH

完整範例:orca-wp

這是我日常用來管理多個 WordPress 站台的工具實際的 setup.py

from setuptools import setup  setup(     name="orca-wp-cli",     version="1.0.0",     description="WordPress CLI 工具 - 在終端管理你的 WP 站台",     py_modules=["main", "wp_client"],     install_requires=[         "typer>=0.9",         "httpx>=0.27",         "rich>=13",         "python-dotenv",     ],     entry_points={         "console_scripts": [             "orca-wp=main:app",         ],     },     python_requires=">=3.10", )

安裝後,不管在哪個目錄,直接跑 orca-wp list --site myblog
就能列出文章。工具的原始碼還在原本的目錄,改了馬上生效,不需要重新 build
或安裝。

這個方式對於個人工具、內部自動化腳本來說非常實用——不需要打包成
binary、不需要上 PyPI,只要一台有 Python 的機器,clone 下來 pip install
就能用。

常見問題 FAQ

為什麼要用 setup.py 封裝 CLI 工具?

setup.py 可以把套件與 entry point 定義好,讓指令安裝後就能在任何目錄直接執行。

CLI 工具和一般 Python 腳本有什麼差別?

封裝成 CLI 後更容易安裝、分發與維護,也更適合團隊或多機器環境使用。

什麼情境適合把工具做成全域指令?

當你需要反覆使用、跨專案呼叫,或希望其他人不用記 Python 執行路徑就能使用時,就很適合。

▧ 文章分類

▧ 熱門文章

▧ 最新文章

✦ 虎鯨 OrcaBiz SEO 優化專業團隊 ✦

專業 SEO 公司幫助你將流量累積成看得見的業績,成為長期有效的最強業務!

[orca_infinite_scroll]