2013-06-22 58 views
2

我已经安装了sixohsix的python twitter库(https://github.com/sixohsix/twitter),并尝试连接到Twitter,但它不起作用。 这是我的代码:Python Twitter:未定义名称Twitter

#!/usr/bin/env python 

from twitter import * 

OAUTH_TOKEN = '...' 
OAUTH_SECRET = '...' 
CONSUMER_KEY = '...' 
CONSUMER_SECRET = '...' 

t = twitter.Twitter(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET)) 

# Get your "home" timeline 
t.statuses.home_timeline() 

该错误消息我得到的是:

Traceback (most recent call last): 
    File "./twitter.py", line 3, in <module> 
     from twitter import * 
    File "/home/XXX/twitter.py", line 11, in <module> 
     t = Twitter(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET)) 
NameError: name 'Twitter' is not defined 

我不知道为什么会发生错误。我也试过

t = twitter.Twitter(...) 

但它也不起作用。我在stackOverflow中发现了一些帖子,但是所有的解决方案都不起作用。

+1

很可能我们自己的文件被称为'twitter.py'并且它被导入。 –

+0

什么'import twitter;打印twitter .__ file__'告诉你?看看你的追踪,你也可以命名你自己的脚本'twitter';现在正在导入而不是主模块。 –

+0

另外,可能会安装'python-twitter'和'twitter'软件包 - 这可能会导致冲突。在这种情况下,删除这两个库并安装您需要的。 – alecxe

回答

7

从您的追踪,我可以看到你的文件被命名为twitter.py

File "/home/XXX/twitter.py", line 11, in <module> 

正因为如此,该行from twitter import *试图您自己的脚本的内容导入到本身,而不是指定的库twitter,因为当前目录通常优先于共享库。

将您自己的脚本重命名为与您尝试使用的库不相同的内容(例如my_twitter.py),并且事情将起作用。