首頁 > 後端開發 > Python教學 > 為什麼「package_data」適用於二進位發行版,但不適用於「setuptools/distutils」中的來源發行版?

為什麼「package_data」適用於二進位發行版,但不適用於「setuptools/distutils」中的來源發行版?

Mary-Kate Olsen
發布: 2024-11-03 05:13:31
原創
857 人瀏覽過

Why Does `package_data` Work for Binary Distributions but Not Source Distributions in `setuptools/distutils`?

將資料包含在 setuptools/distutils 中

打包 Python 應用程式時,通常需要在發行版中包含其他資料檔案。在 setuptools 和 distutils 中,package_data 選項就是用於此目的。然而,一些用戶在嘗試使用這種方法包含包資料時遇到問題。

根據文檔,setup() 函數應配置如下以包含包資料:

setup(
   name='myapp',
   packages=find_packages(),
   package_data={
      'myapp': ['data/*.txt'],
   },
   include_package_data=True,
   zip_safe=False,
   install_requires=['distribute'],
)
登入後複製

此配置指定打包應用程式時應將擴展名為.txt 的文件包含在myapp/ data 目錄中。然而,一些用戶可能會發現這種方法不起作用。

提供的解決方案顯示問題出在 package_data 的行為。請注意,package_data 僅在建置二進位套件時有效(使用 setup.py bdist ...)。但是,在建立來源包時(使用 setup.py sdist ...)它不起作用。

建議不要依賴 package_data,而是使用 MANIFEST.in 檔案。 MANIFEST.in 檔案提供了應包含在二進位和來源發行版中的檔案清單。這確保用戶可以建立兩種類型的發行版並包含必要的資料。

以上是為什麼「package_data」適用於二進位發行版,但不適用於「setuptools/distutils」中的來源發行版?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板