2017-01-31 4 views
2

Ich bin für eine Klärung der folgenden Anweisung in PEP 8 suchen:Wie importiere ich ein Modul aus dem gleichen Verzeichnis explizit in Python 2?

Implizite relativ Importe sollten nie und entfernt wurden, 3.

Angenommen, in Python verwendet werden, dass in Python 2 ich habe die folgende Verzeichnisstruktur (in einem Verzeichnis test genannt):

. 
├── test_recurring_interval.py 
└── test_utils.py 

in der Datei test_recurring_interval.py, ich habe eine Linie

import test_utils

Ist dies ein impliziter relativer Import? Wenn ja, wie sollte ich es ändern, um es explizit zu machen?

Antwort

2

Ob dies ein impliziter relativer import hängt davon ab, ob das Modul die Import-Anweisung enthält, Teil eines Pakets ist. Dies ist schwieriger als es auf den ersten Blick scheint, denn ob ein Modul Teil eines Pakets ist, hängt davon ab, wie Python ausgeführt wurde und wie __package__ und sys.path gesetzt sind.

Es sieht nicht so aus, als gäbe es hier Pakete. Dies ist ein absoluter Import, also kein relativer Import.

1

Ein expliziter relativer Import ist explizit relativ, wenn es mit einem . beginnt.

Implicitily relativ:

import test_utils 

Ausdrücklich relativ:

import .test_utils 
Verwandte Themen