「setuptools/distutils」の「package_data」はバイナリのディストリビューションでは機能するのに、ソースのディストリビューションでは機能しないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-03 05:13:31
オリジナル
827 人が閲覧しました

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 ファイルには、バイナリ配布とソース配布の両方に含める必要があるファイルのリストが含まれています。これにより、ユーザーは両方のタイプのディストリビューションを作成し、必要なデータを含めることができます。

以上が「setuptools/distutils」の「package_data」はバイナリのディストリビューションでは機能するのに、ソースのディストリビューションでは機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート