使用 setuptools/distutils 包含套件資料
使用 setuptools 設定套件安裝時,合併 package_data 檔案可能會出現困難。本文介紹了正確的方法,並提供了常見問題的解決方案。
不正確的方法
不正確的方法涉及定義package_data 並將include_package_data 設定為True,如下所示在提供的範例中看到:
<code class="python">setup( name='myapp', packages=find_packages(), package_data={ 'myapp': ['data/*.txt'], }, include_package_data=True, zip_safe=False, install_requires=['distribute'], )</code>
正確方法
錯誤方法的問題是package_data 僅在建構二進位套件時使用(例如,python setup .py bdist ...),但在建置來源包時則不然(例如,python setup.py sdist ...)。
正確的方法是使用 MANIFEST.in 指定二進位和來源發行版中包含的檔案。以下是 MANIFEST.in 檔案的範例:
include *.txt recursive-include myapp/data *
透過使用 MANIFEST.in,您可以確保包含所有必需的套件資料,無論建置的分發類型為何。
以上是如何使用 setuptools/distutils 正確包含套件資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!