21

我一直在尝试编写一个简单的提及抓取器来开始使用 twitter Api。然而,我在初始化 Api 时遇到了一些困难。在archlinux上运行python2我通过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'

然而,推特的 pydoc 就在那里。我不知道我做错了什么。我希望你能帮忙

更新: 我尝试使用twitter.api()而不是twitter.Api()并得到以下错误: Traceback(最近一次调用最后一次):文件“main.py”,第 8 行,在 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']
4

7 回答 7

19

我想你已经安装了一个 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()
于 2012-02-15T10:26:34.787 回答
15

我在以下站点找到了解决此问题的方法

[ 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,它对我有用

于 2015-07-07T05:56:41.560 回答
14

我得到了同样的错误,因为我的 python 文件被称为 twitter.py。它包含:

import twitter
api = twitter.Api (consumer_key=...

我将文件重命名为 twitterdata.py,删除了 twitter.pyc,然后它就起作用了。

于 2016-07-26T09:28:33.803 回答
1

可能检查twython ,我已经使用requests完成了所有必要的 Ouath 实现。

于 2012-02-15T11:00:32.683 回答
1

如果您使用的是 python-twitter 包装器。在安装过程中,它必须创建一个名为 twitter.py.egg 的 eggfile,将其重命名为 help.py.egg 等其他名称,它将为您工作。

于 2014-05-09T08:26:38.097 回答
1

使用模块python-twitter代替twitter

$ pip install python-twitter

参考:https ://python-twitter.readthedocs.io/en/latest/installation.html

对于模块文档:https ://python-twitter.readthedocs.io/en/latest/twitter.html#modules-documentation

于 2020-05-31T19:12:29.587 回答
0

我在以下站点找到了解决此问题的方法

[ 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 ..它真的有效

于 2020-04-12T11:15:09.723 回答