2014-05-11 117 views
1

我最近剛開始使用python,現在我正在尋找一個顯示我的Twitter供稿的應用程序。所以我下載了一個模塊(不知道它是否叫它),它叫Python-Twitter並安裝它。但現在每次我嘗試導入,我只是得到這個錯誤:無法導入Python-Twitter

Traceback (most recent call last): 
    File "<pyshell#0>", line 1, in <module> 
    import twitter 
    File "build\bdist.win32\egg\twitter.py", line 38, in <module> 
    File "C:\Python27\lib\site-packages\requests_oauthlib-0.4.0-py2.7.egg\requests_oauthlib\__init__.py", line 1, in <module> 
    from .oauth1_auth import OAuth1 
    File "C:\Python27\lib\site-packages\requests_oauthlib-0.4.0-py2.7.egg\requests_oauthlib\oauth1_auth.py", line 4, in <module> 
    from requests.utils import to_native_string 
ImportError: cannot import name to_native_string 

有誰知道我可能做錯了與安裝或東西嗎? Thx

回答

1

這聽起來像是你的安裝問題。應在Python安裝中的requests\utils.py中定義方法to_native_string

我在Ubuntu上,並安裝了Twitter模塊,並且可以無任何錯誤地導入它。當我查看我的安裝時,在/usr/lib/python2.7/dist-packages/requests/utils.py中,有一個定義在那裏的to_native_string方法。

您所遇到錯誤的含義是,在您的安裝中,沒有utils.py,或者,如果有,它不包含該方法。

我會建議檢查您的安裝,看看是否是這種情況。如果確實缺少,我建議開始安裝並重新安裝。您可能想嘗試使用virtualenv環境,因此它可以充當沙箱(在這種情況下,您可以保持當前安裝狀態,只要它完整無缺,即可運行virtualenvpip)。

如果utils.py實際上是那裏確實含有該名稱的方法,我會建議運行諸如pudbpdb調試器(pudb不是內置的,但它更全功能),並通過import步驟看看是否有任何額外的光線。

6

在我的情況下安裝的要求,oauthlib固定它

sudo pip install requests-oauthlib 
+0

這實際上解決了問題 - 可能是因爲舊版本的請求庫。 – chhantyal

+0

這確實是因爲舊版本的'requests' lib,請參閱下面的答案。 – chhantyal

3

這是因爲requests版本。

requests.utils.to_native_string可因爲requests 2.0.0

所以只需更新requests

pip install -U requests 

看到更多細節here on another thread

+0

經過多次的抨擊之後,這就解決了我的問題。謝謝! – richb01