2013-05-19 37 views
0

我是新的python。今天我試圖將我的樹莓派連接到保管箱。 我遵循本教程http://cttoronto.com/03/16/2013/raspberry-pi-dropbox-sync/。 我用cli_client.py爲例,並插入我的應用ID等Python - 導入客戶端模塊

import cmd 
import locale 
import os 
import pprint 
import shlex 

from dropbox import client, rest, session 


APP_KEY = "XXX" 
APP_SECRET = "XXX" 

ACCESS_TYPE = "Full Dropbox" 

sess = session.DropboxSession(APP_KEY,APP_SECRET,ACCESS_TYPE) 

request_token = sess.obtain_request_token() 

url = sess.build_authorize_url(request_token) 

然後我試圖執行腳本,但得到了以下錯誤(sudo python cli_client.py):

Traceback (most recent call last): 
    File "cli_client.py", line 7, in <module> 
    from dropbox import client, rest, session 
    File "/var/tmp/setuptools/dropbox-python-sdk-1.5.1/example/dropbox.py", line 7, in <module> 
    from dropbox import client, rest, session 
ImportError: cannot import name client 

我在做什麼錯?

+0

import dropbox;打印目錄(dropbox); – Rajeev

回答

1

該腳本正在查看「客戶端」的「dropbox」模塊 - 就像您從錯誤中看到的一樣。要麼你沒有正確安裝它或教程是錯誤的(是的,見下文)。

您是否確定要下載Dropbox模塊並進行安裝。本教程中有一個錯字,您應該運行:

wget https://www.dropbox.com/static/developers/dropbox-python-sdk-1.5.1.zip 

要下載dropbox文件並創建模塊。

更容易的是安裝使用easy_installpip *的Dropbox模塊。請嘗試以下操作:

sudo pip install dropbox 

對於超高級的用法,瞭解的virtualenv和virtualenv中的包裝器,這樣你就不會所有的地方安裝上百個模塊的...那是外面的一個位此問題的範圍現在;-)

1

您應該先正確安裝保管箱包。

結帳pipeasyinstall

安裝使用

sudo easy_install dropbox 

sudo pip install dropbox 

包中的保管箱包之後應該最有可能駐留在/usr/local/lib/python2.7/dist-packages/dropbox/

然後運行上述代碼從外部/var/tmp/setuptools/dropbox-python-sdk-1.5.1/example不應返回上述錯誤。

0

如果仔細查看錯誤,可以看到名爲「dropbox.py」的文件中存在dropbox導入語句,這會導致命名空間衝突。

File "cli_client.py", line 7, in <module> 
    from dropbox import client, rest, session 
    File "/var/tmp/setuptools/dropbox-python-sdk-1.5.1/example/dropbox.py", line 7, in <module> 
    from dropbox import client, rest, session 
ImportError: cannot import name client 

只需將.py文件重命名爲類似foo.py的文件,然後您就可以繼續導入。但看起來這個問題在api的後續版本中得到了修復。

當我第一次使用dropbox API玩時,我被這個問題困住了,並且把我的代碼放到了「dropbox.py」文件中。 ;)