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 ファイルには、バイナリ配布とソース配布の両方に含める必要があるファイルのリストが含まれています。これにより、ユーザーは両方のタイプのディストリビューションを作成し、必要なデータを含めることができます。
以上が「setuptools/distutils」の「package_data」はバイナリのディストリビューションでは機能するのに、ソースのディストリビューションでは機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。