Question

Si tout mon __init__.py les fichiers sont vides, dois-je les stocker dans le contrôle de version ou existe-t-il un moyen de faire en sorte que distutils créer du vide __init__.py fichiers pendant l'installation ?

Était-ce utile?

La solution

Y a-t-il une raison pour laquelle tu veux éviter mettre à vide __init__.py fichiers dans le contrôle de version ?Si vous faites cela, vous ne pourrez pas import vos packages à partir du répertoire source sans exécuter au préalable distutils.

Si tu le veux vraiment, je suppose que tu peux créer __init__.py dans setup.py.Il faut que ce soit avant en cours d'exécution distutils.setup, donc setup lui-même est capable de trouver vos colis :

from distutils import setup
import os

for path in [my_package_directories]:
    filename = os.path.join(pagh, '__init__.py')
    if not os.path.exists(filename):
        init = open(filename, 'w')
        init.close()

setup(
...
)

mais...que gagneriez-vous à cela, comparé à avoir le vide __init__.py des fichiers là-bas en premier lieu ?

Autres conseils

En Python, __init__.py les fichiers ont réellement un sens !Ils signifient que le dossier dans lequel ils se trouvent est un module Python.A ce titre, ils ont un réel rôle dans votre code et devraient très probablement être stockés dans le Version Control.

Vous pourriez très bien imaginer un dossier dans votre arborescence source qui n'est PAS un module Python, par exemple un dossier contenant uniquement des ressources (par ex.images) et aucun code.Ce dossier n'aurait pas besoin d'avoir un __init__.py fichier dedans.Maintenant, comment faites-vous la différence entre les dossiers dans lesquels distutils doit créer ces fichiers et les dossiers où il ne le devrait pas ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top