[英]Python Facebook SDK: 'module' object has no attribute 'GraphAPI'
我正在尝试使用 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)
……但我还是卡住了。 我是否需要“输入一个版本”才能以某种方式使事物完全实例化? 或者它可能是别的东西?
我第一次在 python 上使用 facebook-sdk 时遇到了同样的问题。 发生我将我的python文件命名为“facebook.py”,并无意识地发生了名称冲突。
如果您使用的是 Ubuntu 或 Debian,只需执行以下命令即可使其正常工作
sudo pip uninstall facebook
sudo pip uninstall facebook-sdk
sudo pip install facebook-sdk
对于其他操作系统,只需删除facebook
和facebook-sdk
包并仅安装facebook-sdk
。
然后执行那个程序,它会工作。 看起来facebook
模块是一个虚拟模块。 我们真正需要的只是facebook-sdk
。
我尝试了@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/
我也有同样的问题。 我将文件从facebook.py重命名为first.py (您可以选择一个名称。)所以,我的结论是不要使用模块名称保存文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.