ホームページ  >  記事  >  バックエンド開発  >  私の `setup.py` にパッケージ データを含めることができないのはなぜですか?

私の `setup.py` にパッケージ データを含めることができないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 15:17:29635ブラウズ

Why Does My `setup.py` Fail to Include Package Data?

setuptools/distutils を使用してパッケージ データを含める

問題:

推奨手順に従っているにもかかわらずsetuptools を使用してパッケージ データを含める場合、インストーラーは関連ファイルの取り込みに失敗します。次のセットアップ コードにより、この機能が有効になります:

<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 とより信頼性の高い MANIFEST.in の間の微妙な違いにより発生します。 package_data は主にバイナリ パッケージ (例: python setup.py bdist ...) をビルドするときに使用されますが、ソース パッケージ (例: python setup.py sdist ...) の作成には機能しません。

解決策:

バイナリ配布とソース配布の両方にパッケージ データを効果的に含めるには、MANIFEST.in を使用することをお勧めします。以下に例を示します。

include appname/data/*.txt

このファイルをプロジェクトのルートに配置します。これは、bdist コマンドと sdist コマンドの両方に、指定されたデータ ファイルを含めるように指示します。この方法により、構築されるディストリビューションの種類に関係なく、必要なデータが適切にパッケージ化されることが保証されます。

以上が私の `setup.py` にパッケージ データを含めることができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。