20

我正在尝试使用 Facebook SDK for Python 运行一个基本示例。我尝试完全按照本教程从命令行执行的操作(先成功完成“ pip install facebook”和“ ”...):pip install facebook-sdk

在此处输入图像描述

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) 

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

4

5 回答 5

36

第一次使用 facebook-sdk for python 时,我遇到了同样的问题。碰巧我将我的python文件命名为“facebook.py”,并且不自觉地发生了名称冲突。

于 2014-07-26T00:32:56.783 回答
22

如果您使用的是 Ubuntu 或 Debian,只需执行以下命令即可使其正常工作

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

对于其他操作系统,只需删除facebookfacebook-sdk打包并仅安装facebook-sdk.

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

于 2013-11-10T18:54:29.603 回答
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/ 
于 2014-08-13T15:49:45.803 回答
1

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

于 2018-05-16T06:15:41.517 回答
0

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

祝你好运。

于 2020-09-17T22:03:17.317 回答