Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah `data_pakej` Berfungsi untuk Pengagihan Binari tetapi Bukan Pengagihan Sumber dalam `setuptools/distutils`?

Mengapakah `data_pakej` Berfungsi untuk Pengagihan Binari tetapi Bukan Pengagihan Sumber dalam `setuptools/distutils`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 05:13:31828semak imbas

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

Pemasukan Data Pakej dalam setuptools/distutils

Apabila membungkus aplikasi Python, selalunya perlu memasukkan fail data tambahan dalam pengedaran. Dalam setuptools dan distutils, pilihan package_data bertujuan untuk tujuan ini. Walau bagaimanapun, sesetengah pengguna menghadapi masalah apabila cuba memasukkan data pakej menggunakan pendekatan ini.

Menurut dokumentasi, fungsi persediaan() harus dikonfigurasikan seperti berikut untuk memasukkan data pakej:

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

Konfigurasi ini menentukan bahawa fail dengan sambungan .txt harus disertakan dalam direktori myapp/data semasa membungkus aplikasi. Walau bagaimanapun, sesetengah pengguna mungkin mendapati bahawa pendekatan ini tidak berfungsi.

Penyelesaian yang disediakan menunjukkan bahawa isu itu terletak pada tingkah laku package_data. Adalah diperhatikan bahawa package_data hanya berfungsi apabila membina pakej binari (menggunakan setup.py bdist ...). Walau bagaimanapun, ia tidak berfungsi apabila membina pakej sumber (menggunakan setup.py sdist ...).

Daripada bergantung pada package_data, pengesyoran adalah menggunakan fail MANIFEST.in. Fail MANIFEST.in menyediakan senarai fail yang harus disertakan dalam pengedaran binari dan sumber. Ini memastikan pengguna boleh membuat kedua-dua jenis pengedaran dan memasukkan data yang diperlukan.

Atas ialah kandungan terperinci Mengapakah `data_pakej` Berfungsi untuk Pengagihan Binari tetapi Bukan Pengagihan Sumber dalam `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