Python "из xxx.yyy import xxx" ошибка - PullRequest
15 голосов
/ 11 января 2010

Я работаю с пакетом PyFacebook в Python, и я видел, как люди неоднократно упоминали, что вы можете написать оператор импорта следующим образом:

from facebook.djangofb import facebook

Однако это не работает. В нем говорится, что facebook.method_name существует в модуле facebook, а не в модуле djangofb. Я предполагаю, что импортирую facebook.method_name как facebook, но не получаю его из самого пакета facebook.

Я использую Python 2.6.

Как я могу использовать псевдоним facebook.djangofb как facebook?

Ответы [ 3 ]

30 голосов
/ 11 января 2010

Это правильный способ для псевдонима модуля через импорт:

import facebook.djangofb as facebook
6 голосов
/ 08 февраля 2017

Из документации Python 3 (она работает так же, как в Python 2.6 , но я нашел, что документация Python 3 объяснила это более четко):

Если за именем модуля следует as, то имя, следующее за as, привязывается непосредственно к импортированному модулю.

Итак, ваше заявление должно выглядеть так:

import facebook.djangofb as facebook

и тогда facebook.method_name будет работать.

Также см. Можно ли определить псевдонимы для импортированных модулей в Python? для дополнительных опций псевдонимов

2 голосов
/ 09 февраля 2017
from facebook import djangofb as facebook

Если вы хотите импортировать djangofb как facebook, вам нужно это сделать.

Таким образом, вы можете получить доступ к facebook.djangofb.method_name как facebook.method_name.

При этом более распространено давать ему неконфликтующее имя, здесь это будет fb или face. То, что не переопределяет корень facebook import.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...