2013-06-22 54 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),並且事情將起作用。