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!