Python hiba "ImportError: Nem létezik nevű modul"

A Python egy helyi könyvtárba van telepítve.

A könyvtárfám így néz ki:

(local directory)/site-packages/toolkit/interface.py

A kódom itt található:

(local directory)/site-packages/toolkit/examples/mountain.py

A példa futtatásához a python mountain.py-t írom, és a kódban van:

from toolkit.interface import interface

És megkapom a hibát:

Traceback (most recent call last):
  File "mountain.py", line 28, in ?
    from toolkit.interface import interface
ImportError: No module named toolkit.interface

Már ellenőriztem a sys.path-t és ott van a /site-packages könyvtár. Továbbá a toolkit mappában van a __init__.py.bin fájl, hogy jelezzem a Python számára, hogy ez egy csomag. A példák könyvtárában is van egy __init__.py.bin.

Nem tudom, hogy a Python miért nem találja meg a fájlt, amikor az a sys.path fájlban van. Valami ötlet? Lehet, hogy jogosultsági probléma? Szükségem van valamilyen végrehajtási engedélyre?

Megoldás

Az orip's hozzászólásához fűzött megjegyzései alapján azt hiszem, ez történt:

  1. A __init__.py fájlt szerkesztetted a Windowson.
  2. A windowsos szerkesztő hozzáadott valami nem nyomtathatót, talán egy kocsi-visszavonást (a Windowsban a sor vége CR/LF; unixban csak LF), vagy talán egy CTRL-Z-t (windowsos fájl vége).
  3. A WinSCP-t használta a fájl unixos dobozára való másolásához.
  4. A WinSCP azt gondolta: "Ez valami olyasmit tartalmaz, ami nem egyszerű szöveg; .bin kiterjesztést teszek a bináris adatok jelzésére."
  5. A hiányzó __init__.py (most már __init__.py.bin) azt jelenti, hogy a python nem érti a toolkitet csomagként.
  6. Létrehozod a __init__.py-t a megfelelő könyvtárban és minden működik... ?
Kommentárok (7)

Does

(local directory)/site-packages/toolkit

van egy __init__.py?

Ahhoz, hogy az import sétáljon a könyvtáraidban, minden könyvtárnak rendelkeznie kell egy __init__.py fájlal.

Kommentárok (2)

Egy könyvtár csomagként való megjelöléséhez szükséged van egy __init__.py nevű fájlra, ez segít?

Kommentárok (8)