Maison > Article > développement back-end > Pourquoi `package_data` fonctionne-t-il pour les distributions binaires mais pas pour les distributions sources dans `setuptools/distutils` ?
Lors du packaging d'applications Python, il est souvent nécessaire d'inclure des fichiers de données supplémentaires dans la distribution. Dans setuptools et distutils, l'option package_data est prévue à cet effet. Cependant, certains utilisateurs rencontrent des problèmes lorsqu'ils tentent d'inclure des données de package en utilisant cette approche.
Selon la documentation, la fonction setup() doit être configurée comme suit pour inclure les données de package :
setup( name='myapp', packages=find_packages(), package_data={ 'myapp': ['data/*.txt'], }, include_package_data=True, zip_safe=False, install_requires=['distribute'], )
Cette configuration spécifie que les fichiers avec l'extension .txt doivent être inclus dans le répertoire myapp/data lors du packaging de l'application. Cependant, certains utilisateurs peuvent constater que cette approche ne fonctionne pas.
La solution fournie suggère que le problème réside dans le comportement de package_data. Il est à noter que package_data ne fonctionne que lors de la construction de packages binaires (en utilisant setup.py bdist ...). Cependant, cela ne fonctionne pas lors de la création de packages sources (en utilisant setup.py sdist ...).
Au lieu de s'appuyer sur package_data, il est recommandé d'utiliser un fichier MANIFEST.in. Le fichier MANIFEST.in fournit une liste de fichiers qui doivent être inclus dans les distributions binaires et sources. Cela garantit que les utilisateurs peuvent créer les deux types de distributions et inclure les données nécessaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!