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

文章分類/

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

0 瀏覽
2026-04-06 更新

你有沒有寫過一個 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 就能用。

▧ 文章分類

▧ 熱門文章

▧ 最新文章

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

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

[orca_infinite_scroll]