Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memasukkan Data Pakej dengan betul dengan setuptools/distutils?

Bagaimana untuk Memasukkan Data Pakej dengan betul dengan setuptools/distutils?

Susan Sarandon
Susan Sarandonasal
2024-11-03 22:16:03388semak imbas

How to Properly Include Package Data with setuptools/distutils?

Termasuk Data Pakej dengan setuptools/distutils

Apabila mengkonfigurasi pemasangan pakej menggunakan setuptools, kesukaran mungkin timbul dalam menggabungkan fail_data_pakej. Artikel ini membincangkan pendekatan yang betul untuk berbuat demikian dan menyediakan penyelesaian kepada isu biasa.

Pendekatan Salah

Pendekatan yang salah melibatkan penentuan data_pakej dan tetapan include_package_data kepada Benar, sebagai dilihat dalam contoh yang disediakan:

<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>

Pendekatan Betul

Isu dengan pendekatan yang salah ialah package_data hanya digunakan semasa membina pakej binari (mis., persediaan python .py bdist ...) tetapi bukan semasa membina pakej sumber (cth., python setup.py sdist ...).

Pendekatan yang betul melibatkan penggunaan MANIFEST.in untuk menentukan fail yang disertakan dalam kedua-dua pengedaran binari dan sumber . Berikut ialah contoh fail MANIFEST.in:

include *.txt
recursive-include myapp/data *

Dengan menggunakan MANIFEST.in, anda boleh memastikan semua data pakej yang diperlukan disertakan tanpa mengira jenis pengedaran yang sedang dibina.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data Pakej dengan betul dengan setuptools/distutils?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn