Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Adakah `setup.py` Saya Gagal Menyertakan Data Pakej?

Mengapa Adakah `setup.py` Saya Gagal Menyertakan Data Pakej?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 15:17:29738semak imbas

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

Termasuk Data Pakej dengan setuptools/distutils

Masalah:

Walaupun mengikut langkah yang disyorkan untuk memasukkan data pakej menggunakan setuptools, pemasang gagal memasukkan fail yang berkaitan. Kod persediaan berikut harus mendayakan kefungsian ini:

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

Penjelasan:

Isu ini timbul disebabkan oleh perbezaan halus antara package_data dan MANIFEST.in yang lebih dipercayai. package_data digunakan terutamanya apabila membina pakej binari (cth., python setup.py bdist ...), tetapi ia tidak berfungsi untuk mencipta pakej sumber (cth., python setup.py sdist ...).

Penyelesaian:

Untuk memasukkan data pakej dengan berkesan untuk kedua-dua pengedaran binari dan sumber, adalah disyorkan untuk menggunakan MANIFEST.in. Berikut ialah contoh:

include appname/data/*.txt

Letakkan fail ini pada akar projek anda. Ia akan mengarahkan perintah bdist dan sdist untuk memasukkan fail data yang ditentukan. Kaedah ini memastikan bahawa tanpa mengira jenis pengedaran yang sedang dibina, data yang diperlukan dibungkus dengan betul.

Atas ialah kandungan terperinci Mengapa Adakah `setup.py` Saya Gagal Menyertakan Data Pakej?. 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