Api = twitter.Api() AttributeError: объект 'module' не имеет атрибута 'Api

Я пытаюсь написать простой граббер, чтобы начать работу с twitter Api. Как бы я ни испытывал некоторые трудности при инициализации Api. Запустив python2 на archlinux, я установил твиттер через easy_install, построил его из источника и установил его через 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 для твиттера. Я понятия не имею, что я делаю неправильно. Надеюсь, вы сможете помочь.

UPDATE: Я попытался использовать twitter.api() вместо twitter.api() и получил следующую ошибку:   Traceback (последний последний вызов):   Файл "main.py", строка 8, в   api = twitter.api()   TypeError: объект 'module' не может быть вызван

Дополнительная информация:

>>> 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']

Ответ 1

Я думаю, что вы установили один твиттер-пакет и посмотрите на другую документацию. Т.е.: 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()

Ответ 2

я нашел решение этой проблемы на следующем сайте

[http://himanen.info/solved-attributeerror-module-object-has-no-attribute-api/][1]

Существует две библиотеки Python: библиотека twitter и библиотека python-twitter. Решение было довольно простым:

pip uninstall twitter

Затем я просто убедился, что python-твиттер определенно установлен:

pip install python-twitter

Спасибо, господин, это сработало для меня.

Ответ 3

Я получил ту же ошибку, потому что мой файл python назывался twitter.py. Он содержал:

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

Я переименовал файл в twitterdata.py, удалил twitter.pyc, а затем он сработал.

Ответ 4

возможно, проверьте twython, я сделал всю необходимую реализацию Ouath, используя requests.

Ответ 5

Если вы используете оболочку python-twitter. во время процесса установки он должен был создать файл файл с именем twitter.py.egg, переименовав его каким-то другим именем, например help.py.egg, оно будет работать для вас.