Python 分發包中添加額外文件


Python 分發包中添加額外文件


在製作一個 Python 分發包時經常需要把一些文件添加到包中。最常見的例子是你希望通過 pip install命令安裝 Python 包時會在 /etc/ 等目錄下自動添加默認配置文件,由此可以讓 Python安裝完成就可以工作,同時也可以給用戶提供配置樣例參考。

參考 https://docs.python.org/3/distutils/setupscript.html#installing-additional-files

如果使用 setuptools,在 setup.py 文件中可以通過 data_files 配置項配置分發包的額外文件,格式為:( , [ , , ...]) 文件2> 文件1> 安裝位置>

<code># setup.py
from setuptools import setup

setup(...,
data_files=[('bitmaps', ['bm/b1.gif', 'bm/b2.gif']),
('config', ['cfg/data.cfg'])],
)/<code>

上面的示例 安裝位置>使用了相對路徑,在安裝時會根據安裝前綴如 sys.prefix(系統級安裝) 和site.USER_BASE(用戶級安裝)解釋為絕對路徑。雖然也可以使用絕對路徑,但不推薦這麼做,因為這與 wheel 格式的分發包不兼容。文件路徑同樣也是相對路徑,其路徑起點為 setup.py 文件所在目錄,即項目的根目錄,注意文件不能被重命名。

如果使用 https://docs.openstack.org/pbr/latest/ 幫助打包,聲明額外文件的方法與上述類似,需要在 setup.cfg 如下配合

<code>[files]
packages =
pbr
data_files =
etc/pbr = etc/*
etc/init =
pbr.packaging.conf
pbr.version.conf/<code>


分享到:


相關文章: