Frage

Wenn alle meine __init__.py Dateien leer sind, muss ich sie in die Versionskontrolle speichern haben, oder ist es eine Möglichkeit, distutils erstellen leer __init__.py Dateien während der Installation zu machen?

War es hilfreich?

Lösung

Gibt es einen Grund, warum Sie wollen vermeiden setzen leer __init__.py Dateien in der Versionskontrolle? Wenn Sie dies tun, werden Sie nicht in der Lage sein, Ihre Pakete aus dem Quellverzeichnis wihout ersten Lauf distutils import.

Wenn Sie wirklich wollen, nehme ich an Sie __init__.py in setup.py erstellen können. Es muss vor laufen distutils.setup, so setup selbst in der Lage, Ihre Pakete zu finden:

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(
...
)

aber ... was würden Sie daraus gewinnen, im Vergleich zu den leeren __init__.py Dateien dort in erster Linie zu haben?

Andere Tipps

In Python __init__.py Dateien haben tatsächlich einen Sinn! Sie bedeuten, dass die Ordner sind sie in einem Python-Modul. Als solche haben sie eine echte Rolle in Ihrem Code und sollen höchstwahrscheinlich in der Versionskontrolle gespeichert werden.

Sie können auch einen Ordner in Ihrem Quellbaum vorstellen, der NICHT ein Python-Modul, zum Beispiel ist ein Ordner nur Ressourcen (zum Beispiel Bilder) und keinen Code enthält. Dieser Ordner müßte keine __init__.py Datei in ihm hat. Nun, wie machen Sie den Unterschied zwischen Ordnern, in denen distutils sollten diese Dateien und Ordner erstellen, wo es nicht sollte?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top