Python Facebook SDK:'module'对象没有属性'GraphAPI'

时间:2013-11-10 18:39:49

标签: python facebook facebook-graph-api module

我正在尝试使用Facebook SDK for Python运行一个基本示例。我尝试从命令行完成此tutorial所做的事情(首先成功完成“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) 

......但我仍然被卡住了。我是否需要“输入一个版本”以某种方式让事情完全实例化?或者它可能是别的什么?

5 个答案:

答案 0 :(得分:30)

第一次使用facebook-sdk for python时遇到了同样的问题。它发生了我将我的python文件命名为“facebook.py”,并且无意识地将其命名为冲突。

答案 1 :(得分:22)

如果您使用的是Ubuntu或Debian,只需执行以下命令即可实现此功能

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

对于其他操作系统,只需删除facebookfacebook-sdk个包,然后只安装facebook-sdk

然后执行该程序,它将工作。看起来facebook模块是一个虚拟模块。我们实际需要的只是facebook-sdk

答案 2 :(得分:1)

我尝试了@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/ 

答案 3 :(得分:1)

我有同样的问题。我将文件从 facebook.py 重命名为 first.py (您可以选择一个名称。)所以,我的结论是不用模块保存文件名称。

答案 4 :(得分:0)

我检查了所有内容,因为我遇到了同样的问题,我按照建议的方式进行了卸载和安装,我检查了是否还有另一个文件,程序包facebook,但没有用,然后我在程序图= facebook中看到了这个。 GraphApi (令牌),.... Api ..大写字母,其后的字母均为小写字母,然后像这样输入Result graph = facebook。 GraphAPI (令牌),API全部大写,现在,在我验证了访问令牌并检查了其他小错误之后,一切都正常运行了。

祝你好运。