我正在尝试使用Facebook SDK for Python运行一个基本示例。我尝试从命令行完成此tutorial所做的事情(首先成功完成“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)
......但我仍然被卡住了。我是否需要“输入一个版本”以某种方式让事情完全实例化?或者它可能是别的什么?
答案 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
对于其他操作系统,只需删除facebook
和facebook-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)