2013-09-06 8 views
5

glob Import ich mit Eclipse Kepler arbeite (2013) und Python 3.3.2 und einen einfachen Import wieTypeerror: 'Modul' Objekt ist nicht aufrufbar, wenn in Eclipse

import glob 
a = glob.glob('*') 
print(a) 

gibt läuft ein:

TypeError: 'module' object is not callable 

Dies ist nicht der Fall, wenn ich denselben Code in Leerlauf ausführen. Ich weiß, dass mir etwas fehlt.

Jede Hilfe wird geschätzt.

+1

Was gibt 'glob .__ file__' zurück? –

+0

** Verwenden Sie niemals den gleichen Namen eines eingebauten Moduls oder einer integrierten Funktion. – Bakuriu

Antwort

4

Wahrscheinlich in Ihrer Eclipse-Umgebung gibt es ein Modul mit dem Namen glob, das vor der Standardbibliothek importiert wird.

Versuchen Sie, die glob.__file__ zu drucken, um es auszuprobieren.

+0

Dieser Kommentar half, das Problem zu verstehen. Grazie Paolo! – rearThing

3

Dies ist nur möglich, wenn Sie im Suchpfad des Moduls ein Paket mit dem Namen glob definiert haben. Anstatt also das integrierte Modul glob zu laden, importiert python dieses Paket.

So etwas wie dies in dem Modulsuchpfad

glob 
├── glob.py 
├── glob.pyc 
├── __init__.py 
└── __init__.pyc 

die gleichen Fehler erzeugen:

>>> import glob 
>>> glob.__file__ 
'/home/monty/py/glob/__init__.pyc' 
>>> glob.glob() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'module' object is not callable 

Sie müssen sonst den Namen dieses Pakets, um etwas ändern, weil es vorhanden zu sein scheint auf dem von Eclipse verwendeten Modulsuchpfad.

+0

Danke! das löste das Problem – rearThing

+0

@rearThing Froh, dass geholfen, können Sie [akzeptieren die Antwort] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) wenn es hat für dich funktioniert. –

+2

LOL. Ich nannte mein Python-Skript 'glob.py' und fragte mich, warum ich nicht auf das glob-Modul zugreifen konnte. – downeyt

3

In einigen Fällen verwenden Benutzer den gleichen Dateinamen wie eingebaute Module. Benennen Sie Ihre Datei nicht als "glob.py".

+1

Danke! Das war's. Wenn Sie eine linke 'glob.pyc' Datei haben, die von Ihrem' glob.py' erstellt wurde, dann reinigen Sie sie auch ... – arielf