2010-01-11 17 views
15

Ich arbeite mit dem PyFacebook Paket in Python, und ich habe Menschen unzählige Male erwähnt gesehen, dass Sie eine Import-Anweisung schreiben kann wie folgt dar:Python „von xxx.yyy Import xxx“ Fehler

from facebook.djangofb import facebook 

Es funktioniert jedoch nicht. Es besagt, dass facebook.method_name in dem facebook-Modul statt dem djangofb-Modul vorhanden ist. Ich nehme an, ich importiere die facebook.method_name als facebook, nicht, dass ich es aus dem facebook Paket selbst erhalte.

Ich benutze Python 2.6.

Wie kann ich facebook.djangofb als facebook alias?

+7

@qarma: Ihre Bounty-Nachricht macht keinen Sinn; Mit der hier gestellten Frage scheint es sicherlich keine Beziehung zu haben. –

Antwort

30

Dies ist der richtige Weg, ein Modul über Import alias:

import facebook.djangofb as facebook 
6

Vom python 3 documentation (es funktioniert auf die gleiche Art und Weise in python 2.6, aber ich fand die Python 3-Dokumentation deutlicher erklärt):

Wenn auf den Modulnamen as folgt, ist der folgende Name as direkt an das importierte Modul gebunden.

So sollte Ihre Aussage wie folgt aussehen:

import facebook.djangofb as facebook 

und dann wird facebook.method_name arbeiten.

Siehe auch Can you define aliases for imported modules in Python? für zusätzliche Aliasing Optionen

2
from facebook import djangofb as facebook 

Wenn Sie suchen djangofb als facebook zu importieren, das ist, wie Sie es tun müssen.

Auf diese Weise können Sie auf facebook.djangofb.method_name wie facebook.method_name zugreifen.

Das heißt, es ist üblicher, es einen nicht widersprüchlichen Namen zu geben, hier wäre es fb oder face. Etwas, das den Stammeintrag facebook nicht überschreibt.