0

Ich habe derzeit eine Python-Datei, die eine andere Python-Datei im übergeordneten Verzeichnis importieren muss. Das Problem ist, dass die Datei, die ich importieren möchte, einen Namen hat, der mit einer Nummer beginnt.Importieren von Modul aus dem übergeordneten Verzeichnis beginnend mit einer Nummer

Die Struktur der Dateien ist wie folgt:

parent/ 
├── 123.py 
└── child/ 
    └─── my_file.py 

ich die 123.py Datei importiert werden soll, ist es eine Möglichkeit, dies zu erreichen?

Antwort

3

Nein. Das ist kein gültiger Python-Modulname. Nennen Sie es etwas anderes, beginnend mit einem Brief.

1

Die vorherige Antwort ist ein guter Ratschlag, wenn Sie ein Modul/eine Variable benennen, sollten Sie es nicht mit einer Nummer beginnen. Aber wenn Sie ein solches Modul importieren müssen, ist es immer noch möglich.

Zum Beispiel für den Zugriff auf variable x von Modul 123.py:

>>> from importlib import import_module 
>>> onetwothree = import_module('123') 
>>> onetwothree.x 

In Bezug auf den anderen Teil Ihrer Frage, das Modul in dem Verzeichnis Elternteil, können Sie zunächst das Verzeichnis auf Ihrem sys Pfad anhängen:

>>> import sys 
>>> sys.path.append('path/to/dir') 
0

Read more about naming conventions from PEP 8

oben erwähnt, es ist kein vorzuziehen Name modu les als Zahlen, weil es die Dinge komplizierter macht, als sie sein sollten. PEP 8 empfiehlt außerdem, dass die Benennung in Kleinbuchstaben erfolgt, wobei zur Verbesserung der Lesbarkeit Unterstriche verwendet werden. PEP 8 sind keine Regeln, sondern Richtlinien. Wenn es absolut notwendig ist, dass Sie den Modulnamen als Nummer benötigen, können Sie Lgiros Antwort folgen.

Eine andere Möglichkeit, die Sie importieren können, ist die Verwendung von __init__.py Dateien und relativen Importen.

parent/ 
├──__init__.py 
├── parent.py 
└── child/ 
    ├───__init__.py 
    └─── child.py 

Dann in child.py

from .. import parent 

Question related to relative import

Verwandte Themen