Der Import ist fehlgeschlagen, wenn sich das Modul bereits im sys.path befindet

Es ist seltsam für mich, dass der Import fehlschlägt, auch wenn es im sys.path .

Heute habe ich eine Google App-Engine Django-Umgebung auf Ubuntu in meinem Labor-PC. Und es geht gut, wenn ich den Code ausgecheckt habe und ihn in Fenstern (der gleiche PC im Labor) lief.

Aber als ich in den Schlafsaal ging und den Code aussagte und anfing zu laufen, scheiterte er seltsam.

Ich sys.path den sys.path , wie sys.path :

 ['/home/tower/googlecode/mygae', '/home/tower/googlecode/mygae/.google_appengine', '/home/tower/googlecode/mygae/.google_appengine/lib/antlr3', ...] 

Und als ich Python klagte

 from google.appengine.api import apiproxy_stub_map ImportError: No module named appengine.api 

Es ist einfach zu wissen, dass das Google-Modul im Verzeichnis '/home/tower/googlecode/mygae/.google_appengine' ist und die __init__.py für jedes Modul vorhanden ist.

Also, was kann der Grund für diese seltsame Sache sein? Oder was habe ich vermutlich vermisst?

Vielen Dank.

4 Solutions collect form web for “Der Import ist fehlgeschlagen, wenn sich das Modul bereits im sys.path befindet”

Kannst du google und google.appengine ? Bist du sicher, dass der Interpreter die Zugriffsrechte auf den Modulbaum gelesen und überschritten hat?

Ich hatte das gleiche Problem auf Ubuntu, wenn ich mit google.appengine in der Konsole spielen wollte. Zuerst habe ich versucht, es zu beheben, indem /usr/lib/python2.7/dist-packages/google das /usr/lib/python2.7/dist-packages/google Paket ganz /usr/lib/python2.7/dist-packages/google , aber Ubuntu One beschwert sich. Schließlich habe ich es gelöst, indem ich das GAE SDK google Paket in das Paket verschmolzen habe , das die Kollision verursacht hat .

Der Inhalt des /usr/lib/python2.7/dist-packages/google dir sieht nun so aus:

 /google /appengine /net /protobuf /pyglib /storage /__init__.py /__init__.pyc 

Siehst du wie du bekommst ein Modul (oder Paket) namens 'google' von woanders – vielleicht /home/tower/googlecode/mygae – und das Google Modul hat keine appengine darin. Um zu überprüfen, drucken google.__file__ und wenn möglich google.__path__ ; Das sollte informativ sein.

Manchmal bekommst du einen Importfehler für ein Modul, wenn der Fehler etwas anderes ist, wie ein Syntaxfehler. Versuche Putting

 import pdb;pdb.set_trace() 

Kurz vor dem import und dann s (tep) in den import, und n (ext) thruogh das Modul in Frage zu sehen, von Ihnen einen Fehler zu bekommen.

  • Wie bekomme ich postgresSQL auf einem Windows 7 Computer mit Django zu arbeiten?
  • Ein Socket-Betrieb wurde in einem unerreichbaren Netzwerk in python httplib versucht
  • Django migrieren Schema von sqlite zu postgresql
  • Wo kann man den Django-Startcode eingeben?
  • Wie man eine Fehlermeldung in django benutzerdefinierte Authentifizierung Backend haben
  • Bestellen mit SQL's CASE WHEN / THEN Syntax Django
  • Erstellung von Listen / Berichten mit Inline-Zusammenfassungen in Django
  • Initialisierung von MEDIA_ROOT vor jedem Django Test
  • Django modelformset_factory enthält keine aktuellen Formulare
  • Wie kann man Django mit Unicode-Strings richtig verklemmen?
  • Django Admin-Modell Vererbung ist es möglich?
  • Python ist die beste Programmiersprache der Welt.