Karena minat dari topik ini adalah mendapatkan nama yang sepenuhnya memenuhi syarat, berikut ini adalah kesalahan yang terjadi saat menggunakan impor relatif bersama dengan modul utama yang ada dalam paket yang sama. Misalnya, dengan pengaturan modul di bawah ini:
$ cat /tmp/fqname/foo/__init__.py
$ cat /tmp/fqname/foo/bar.py
from baz import Baz
print Baz.__module__
$ cat /tmp/fqname/foo/baz.py
class Baz: pass
$ cat /tmp/fqname/main.py
import foo.bar
from foo.baz import Baz
print Baz.__module__
$ cat /tmp/fqname/foo/hum.py
import bar
import foo.bar
Berikut adalah keluaran yang menunjukkan hasil pengimporan modul yang sama secara berbeda:
$ export PYTHONPATH=/tmp/fqname
$ python /tmp/fqname/main.py
foo.baz
foo.baz
$ python /tmp/fqname/foo/bar.py
baz
$ python /tmp/fqname/foo/hum.py
baz
foo.baz
Saat impor hum bar menggunakan jalur relatif, bar Baz.__module__
hanya dilihat sebagai "baz", tetapi pada import kedua yang menggunakan nama lengkap, bar terlihat sama dengan "foo.baz".
Jika Anda mempertahankan nama yang sepenuhnya memenuhi syarat di suatu tempat, lebih baik hindari impor relatif untuk kelas tersebut.