在製作一個 Python 分發包時經常需要把一些檔案新增到包中。最常見的例子是你希望通過 pip install
命令安裝 Python 包時會在 /etc/
等目錄下自動新增預設配置檔案,由此可以讓 Python
安裝完成就可以工作,同時也可以給使用者提供配置樣例參考。
參考 Installing Additional Files
如果使用 setuptools,在 setup.py
檔案中可以通過 data_files
配置項配置分發包的額外檔案,
格式為:(<安裝位置>, [<檔案1>, <檔案2>, ...])
# setup.py
from setuptools import setup
setup(...,
data_files=[('bitmaps', ['bm/b1.gif', 'bm/b2.gif']),
('config', ['cfg/data.cfg'])],
)
上面的示例<安裝位置>
使用了相對路徑,在安裝時會根據安裝字首如 sys.prefix
(系統級安裝) 和site.USER_BASE
(使用者級安裝)解釋為絕對路徑。雖然也可以使用絕對路徑,但不推薦這麼做,因為
這與 wheel 格式的分發包不相容。檔案路徑同樣也是相對路徑,其路徑起點為 setup.py
檔案所在目錄,
即專案的根目錄,注意檔案不能被重新命名。
如果使用 pbr 幫助打包,宣告額外檔案的方法與上述類似,
需要在 setup.cfg
如下配合
[files]
packages =
pbr
data_files =
etc/pbr = etc/*
etc/init =
pbr.packaging.conf
pbr.version.conf