Я использую Python 2.6 и установил API Facebook в виде пакета python (в /usr/lib64/python2.6/site-packages/facebook / ...), что означает, что он доступен с простым import facebook
или from facebook import ...
.
Это работает хорошо, если нет имен.Например, в моем проекте я пытаюсь импортировать API Facebook в своем коде на project.facebook с
from .facebook import GraphAPI
Насколько я понимаю, это должно работать, потому что точка явно указывает Python искать пакет одинвойдите в иерархию пакетов и не пытайтесь импортировать пакет project.facebook, который он уже анализирует.
Однако он не работает:
Не удалось импортировать project.views.Ошибка была: невозможно импортировать имя GraphAPI
project.views - это еще один файл исходного кода, который включает project.facebook (я использую Django, но я не уверен, имеет ли он какое-то отношение к этому).
Я знаю, я мог бы просто переименовать свой исходный файл или использовать from __future__ import absolute_import
(это прекрасно работает), но я считаю, что оба обходных путей.
Есть ли причина, по которой from .facebook import ...
не работает?
Обновление:
Вот вывод ls -R в моем каталоге рабочей области (который содержит proj в качестве единственного проекта).
Следующее содержимоенаходится в / home / chris / dev / workspace /, в то время как API Python Facebook установлен глобально (в /usr/lib64/python2.6/site-packages/facebook/...).
./proj/templates: ...
./proj/templates: ...> ./proj: README src static templates
./proj/src:
__init__.py __init__.pyc manage.py settings.py settings.pyc
settings_local.py settings_local.pyc
urls.py urls.pyc proj
./proj/src/proj:
__init__.py admin.py auth.py facebook.py forms.py halloffame.py
helper.py image.py management
middleware.pyc models.pyc openid.pyc
stats.pyc twitter.pyc urls.pyc
views.pyc
__init__.pyc admin.pyc auth.pyc facebook.pyc forms.pyc
halloffame.pyc helper.pyc image.pyc
middleware.py models.py
openid.py stats.py twitter.py
urls.py views.py
./proj/src/proj/management:
__init__.py __init__.pyc commands
./proj/src/proj/management/commands:
__init__.py __init__.pyc cronjob.py cronjob.pyc
./proj/templates: ..../proj/templates: ...
./proj/templates: ...