Python 分發工具初探之 setuptools 進階

發表於2016-03-29

在上篇文章中我們知道了 setuptools 是什麼,以及它基本的功能和用法。在這篇文章中,我們會介紹如何講setuptools應用於稍大的專案中,通過 setuptools 控制包中的檔案。

0x03 使用 find_packages()

在之前的例子中,我們使用的都是 setup() 的預設引數,使用預設引數只能打包一些簡單的、不復雜的工程,如果我們的工程中的檔案越來越多,就不能使用它的預設引數了。

現在我們來建這樣一個工程:

如果像之前那樣使用 setup() 的預設引數來進行打包,我們會看到的 egg 如下:

依然是隻有 __init__.py ,如果我們要想把上邊目錄中的 .txt 檔案和 /data 下的 .dat 檔案也包含到我們的egg包中,我們需要修改 setup.py

這時我們再看一下 egg 包中的內容:

我們也可以排除掉某些檔案:

0x04 使用 entry_points

entry_points 是一個字典,從entry point組名對映道一個表示entry point的字串或字串列表。Entry points是用來支援動態發現服務和外掛的,也用來支援自動生成指令碼。

比如說:

檢視 /usr/local/bin/foo 內容:

這個內容其實顯示的意思是,foo將執行 console_scripts 中定義的foo所代表的函式。執行foo,發現打出了 hello world!,和預期結果一樣。

0x05 總結

這篇文章介紹了一些 setuptools 比較進階的使用方法,對於更詳細的其他用法,詳見官方文件

 

相關文章