Twitter模块python'module'对象没有属性Oauth

时间:2014-01-07 18:43:20

标签: python twitter oauth oauth-2.0

我试图遵循这个基本示例here

代码

import twitter

# XXX: Go to http://dev.twitter.com/apps/new to create an app and get values
# for these credentials, which you'll need to provide in place of these
# empty string values that are defined as placeholders.
# See https://dev.twitter.com/docs/auth/oauth for more information 
# on Twitter's OAuth implementation.

CONSUMER_KEY = ''
CONSUMER_SECRET =''
OAUTH_TOKEN = ''
OAUTH_TOKEN_SECRET = ''

auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET,
                           CONSUMER_KEY, CONSUMER_SECRET)

twitter_api = twitter.Twitter(auth=auth)

# Nothing to see by displaying twitter_api except that it's now a
# defined variable

print twitter_api

但运行该示例会引发以下错误。

vagrant@lucid32:~$ python twitter.py
Traceback (most recent call last):
  File "twitter.py", line 1, in <module>
    import twitter
  File "/home/vagrant/twitter.py", line 14, in <module>
    auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET,
AttributeError: 'module' object has no attribute 'oauth'

任何帮助都将不胜感激。

8 个答案:

答案 0 :(得分:4)

不要将脚本命名为与导入的模块相同,因为当python首先在脚本目录中导入它时,导入twitter.py而不是twitter模块。

将文件重命名为与twitter.py不同的文件后,请不要忘记删除已编译的代码(twitter.pyctweepy.pyc)。

答案 1 :(得分:3)

您没有提到您正在使用的操作系统。是Ubuntu还是Debian?

如果是这样,apt-get install python-twitter会根据您的需要安装错误的软件包。像这样安装正确的包:

sudo apt-get purge python-twitter
sudo pip install twitter 

此外,您应该更改程序的名称,使其与您导入的模块不同。

答案 2 :(得分:1)

我有类似的问题。我安装了python-twitter个包。我一直得到同样的错误。删除python-twitter之类的内容:

(!pip uninstall python-twitter)

Ipython控制台中并安装twitter包现在可以正常工作。

我希望有所帮助。

答案 3 :(得分:0)

尝试tweepy,我发现它在处理Twitter身份验证方面做得更好

import tweepy
CONSUMER_KEY = ''
CONSUMER_SECRET =''
OAUTH_TOKEN = ''
OAUTH_TOKEN_SECRET = ''
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

api = tweepy.API(auth)

答案 4 :(得分:0)

只是为了证明Rob提供的解决方案,对我来说效果很好。显然,问题是它安装了apt-get而不是pip,这可能会给出正确的库版本。

sudo apt-get purge python-twitter
sudo pip install twitter 

答案 5 :(得分:0)

如果您使用的是oauth2,则可能需要导入为oauth,以便python识别该库。几天前我遇到了同样的问题,这就是简单的解决方法。

答案 6 :(得分:0)

而不是twitter.oauth.Oauth,请使用twitter.Api

import twitter
api = twitter.Api(consumer_key='consumer_key',
                      consumer_secret='consumer_secret',
                      access_token_key='access_token',
                      access_token_secret='access_token_secret')

Details Here

答案 7 :(得分:0)

我遇到了同样的问题,这就是帮助我的原因。 我首先找到了所有与twitter相关的软件包,在我的例子中是 tweepy twitter 。我卸载了它们并重新安装了twitter。到现在为止还挺好。它对我有用。

  

帮助( “模块”)

主要问题不在于OAuth,而在于安装了多个Twitter软件包。