Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa `data_pakej` Gagal Memasukkan Fail Data dalam Alat Setup Python?

Mengapa `data_pakej` Gagal Memasukkan Fail Data dalam Alat Setup Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 21:21:29710semak imbas

Why Does `package_data` Fail to Include Data Files in Python Setuptools?

Memasukkan Data Pakej dalam Persediaan dengan Setuptools atau Distutils

Apabila bekerja dengan setuptools, menyepadukan data pakej ke dalam proses pemasangan boleh menghadapi halangan. Walaupun dokumentasi mencadangkan penggunaan package_data untuk menentukan kemasukan fail, pengguna menghadapi masalah dalam melaksanakan pendekatan ini.

Pertimbangkan coretan kod berikut:

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

Dalam contoh ini, kamus package_data bertujuan untuk memasukkan semua Fail .txt yang terdapat dalam direktori myapp/data/. Walau bagaimanapun, mekanisme ini tidak berkesan.

Pendekatan Alternatif: MANIFEST.in

Daripada bergantung pada package_data, gunakan fail MANIFEST.in untuk menentukan fail yang akan disertakan. Kaedah ini berfungsi dengan lancar untuk pengedaran binari dan sumber.

Untuk mencipta fail MANIFEST.in, tambah baris berikut:

include data/*

Dalam kes ini, ia memastikan semua fail dalam data / direktori disertakan dalam proses pemasangan.

Dengan menggunakan pendekatan MANIFEST.in, anda boleh mengurus kemasukan data pakej dengan berkesan dalam kedua-dua pengedaran binari dan sumber.

Atas ialah kandungan terperinci Mengapa `data_pakej` Gagal Memasukkan Fail Data dalam Alat Setup Python?. 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