Python Facebook SDK: объект 'module' не имеет атрибута 'GraphAPI'

Я пытаюсь запустить базовый пример с помощью SDK для Python. Я попытался сделать именно то, что этот учебник из командной строки (с "pip install facebook" и "pip install facebook-sdk" успешно выполнен первым... ):

enter image description here

import Facebook работает нормально, но graph = facebook.GraphAPI() дает следующую ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'GraphAPI'

Я не знаком с тем, как работают модули, но похоже, что facebook как-то вообще не распознается! Или что-то еще здесь отсутствует. Из командной строки я попробовал следующее:

>>>dir(facebook)

Вывод:

['__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__version__']

и...

>>>help(facebook)

Вывод:

Help on package facebook:

NAME
    facebook - TODO: Document your package.

FILE
    /Library/Python/2.7/site-packages/Facebook-0.0-py2.7.egg/facebook/__init__.py

PACKAGE CONTENTS


DATA
    __loader__ = <zipimporter object "/Library/Python/2.7/site-packages/Fa...
    __version__ = 'TODO: Enter a version'

VERSION
    TODO: Enter a version

(END) 

... Но я все еще застрял. Нужно ли мне "вводить версию", чтобы каким-то образом получить все, чтобы полностью создать экземпляр? Или это может быть что-то еще?

Ответы

Ответ 1

Если вы используете Ubuntu или Debian, просто выполните следующие команды, чтобы получить эту работу

sudo pip uninstall facebook
sudo pip uninstall facebook-sdk
sudo pip install facebook-sdk

Для других операционных систем просто удалите пакеты facebook и facebook-sdk и установите только facebook-sdk.

И затем выполните эту программу, она будет работать. Похоже, что модуль facebook - это фиктивный модуль. Нам действительно нужно только facebook-sdk.

Ответ 2

У меня была такая же проблема, когда я впервые сталкивался с facebook-sdk для python. Это произошло, я назвал свой файл python "facebook.py" и сделал бессовестное столкновение имен.

Ответ 3

Я пробовал, что предлагал @thefourtheye, но pip не удалял все. Вместо этого я просто очистил пакеты Facebook через

rm -rf /path/to/my/venv/lib/python2.7/site-packages/facebook* && rm -rf /path/to/my/venv/lib/python2.7/site-packages/Facebook* 

ВНИМАНИЕ: убедитесь, что у вас нет других пакетов, начинающихся с facebook, прежде чем вы удаляете что-либо. В моем случае я имел

facebook/    
Facebook-0.0-py2.7.egg-info/   
facebook.py    
facebook.pyc 
facebook_sdk-0.4.0-py2.7.egg-info/ 

Ответ 4

Попробуйте

sudo pip uninstall facebook
sudo pip uninstall facebook-sdk
sudo pip install git+https://github.com/pythonforfacebook/facebook-sdk.git