Maison  >  Article  >  développement back-end  >  Comment inclure correctement les données du package avec setuptools/distutils ?

Comment inclure correctement les données du package avec setuptools/distutils ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 22:16:03344parcourir

How to Properly Include Package Data with setuptools/distutils?

Inclure les données du package avec setuptools/distutils

Lors de la configuration de l'installation du package à l'aide de setuptools, des difficultés peuvent survenir lors de l'incorporation des fichiers package_data. Cet article traite de l'approche correcte pour ce faire et fournit une solution aux problèmes courants.

Approche incorrecte

L'approche incorrecte implique de définir package_data et de définir include_package_data sur True, car vu dans l'exemple fourni :

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

Approche correcte

Le problème avec l'approche incorrecte est que package_data n'est utilisé que lors de la création de packages binaires (par exemple, la configuration de Python .py bdist ...) mais pas lors de la création de packages sources (par exemple, python setup.py sdist ...).

L'approche correcte implique d'utiliser MANIFEST.in pour spécifier les fichiers inclus dans les distributions binaires et sources . Voici un exemple de fichier MANIFEST.in :

include *.txt
recursive-include myapp/data *

En utilisant MANIFEST.in, vous pouvez vous assurer que toutes les données de package nécessaires sont incluses quel que soit le type de distribution en cours de construction.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn