api = twitter.Api() AttributeError: 'module' object has no attribute 'Api
我一直在尝试编写一个简单的提述抓取器来开始使用TwitterAPI。不管怎样,我在初始化API时遇到了一些困难。在ArchLinux上运行python2,我通过简单的安装安装安装了twitter,从源代码构建并通过pip安装。这些似乎都不起作用。
1 2 3 4 5 6 7 8 9 | 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上的pydoc是什么。我不知道我做错了什么。希望你能帮忙
更新:我试着用
其他信息:
1 2 3 4 | >>> 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'] |
我想你已经安装了一个twitter软件包,并查看了另一个文档。ie:python-1.7.2是来自https://github.com/sixoxix/twitter的项目,而您正在查看http://code.google.com/p/python-twitter/文档。两者不匹配:)
因此,对于已安装的示例,如果检查源代码,则可以使用流示例和pydoc中的其他各种示例:
1 2 3 4 5 6 7 | from twitter import Twitter # ... twitter = Twitter( auth=OAuth(token, token_key, con_secret, con_secret_key))) # Get the public timeline twitter.statuses.public_timeline() |
我在以下网站找到了这个问题的解决方案
[http://himanen.info/solved attributeError module对象没有属性api/][1]
有两个python库发生冲突:twitter库和python twitter库。解决方案非常简单:
1 | pip uninstall twitter |
然后我就确定安装了python twitter:
1 | pip install python-twitter |
谢谢你,希曼。这对我很有用。
我也有同样的错误,因为我的python文件名为twitter.py。它包含:
1 2 | import twitter api = twitter.Api (consumer_key=... |
我将文件重命名为twitterdata.py,删除twitter.pyc,然后它就工作了。
如果您使用的是python-twitter包装。在安装过程中,它必须创建了一个名为twitter.py.egg的egg文件,用其他名称(如help.py.egg)重命名它,它将为您工作。
可能检查twython,我已经使用请求进行了所有必要的ouath实现。