api = twitter.Api() 属性错误:'module' 对象没有属性 'Api
我一直在尝试写一个简单的提及抓取工具,想要开始使用Twitter的API。不过,在初始化这个API的时候遇到了一些困难。
我在Arch Linux上运行Python 2,通过easy_install安装了Twitter库,也尝试从源代码构建并通过pip安装,但这些方法似乎都不管用。
zergling :: ~/dev/kritter » python2
Python 2.7.2 (default, Jan 31 2012, 13:26:35)
[GCC 4.6.2 20120120 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import twitter
>>> api = twitter.Api()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'Api'
不过,Twitter的文档是有的。我不知道自己哪里出错了,希望你们能帮帮我。
更新:我尝试用twitter.api()
代替twitter.Api()
,结果出现了以下错误:
Traceback (most recent call last):
File "main.py", line 8, in
api = twitter.api()
TypeError: 'module' object is not callable
附加信息:
>>> print dir(twitter)
['NoAuth', 'OAuth', 'Twitter', 'TwitterError', 'TwitterHTTPError', 'TwitterResponse', 'TwitterStream', 'UserPassAuth', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'api', 'auth', 'oauth', 'read_token_file', 'stream', 'twitter_globals', 'write_token_file']
>>> print twitter.__path__
['/usr/lib/python2.7/site-packages/twitter-1.7.2-py2.7.egg/twitter']
7 个回答
我遇到了同样的错误,因为我的 Python 文件叫做 twitter.py。这个文件里面包含了:
import twitter
api = twitter.Api (consumer_key=...
我把文件改名为 twitterdata.py,删除了 twitter.pyc 文件,然后就正常运行了。
我在以下网站找到了这个问题的解决办法
[http://himanen.info/solved-attributeerror-module-object-has-no-attribute-api/][1]
这里有两个Python库发生了冲突:一个是twitter库,另一个是python-twitter库。解决办法其实很简单:
pip uninstall twitter
然后我确保python-twitter库确实安装好了:
pip install python-twitter
谢谢你,himanen,这个方法对我有效
我觉得你安装了一个Twitter的库,但在看另一个的文档。也就是说,python-1.7.2这个项目来自于https://github.com/sixohsix/twitter,而你却在查看http://code.google.com/p/python-twitter/的文档。这两个是不同的哦 :)
所以对于你安装的那个库,如果你查看源代码,会发现有一个流示例,还有其他各种示例在pydoc里:
from twitter import Twitter
# ...
twitter = Twitter(
auth=OAuth(token, token_key, con_secret, con_secret_key)))
# Get the public timeline
twitter.statuses.public_timeline()