我是python的新手。今天我想把我的覆盆子pi连接到Dropbox。
我按照本教程http://cttoronto.com/03/16/2013/raspberry-pi-dropbox-sync/进行了操作。
我使用cli_client.py
作为示例并插入了我的应用ID等。
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 :(得分:1)
该脚本正在“客户端”的“dropbox”模块中查找 - 正如您从错误中看到的那样。你没有正确安装它或者教程错了(是的,见下文)。
您确定要下载Dropbox模块并进行安装吗?教程中有一个拼写错误,你应该运行:
wget https://www.dropbox.com/static/developers/dropbox-python-sdk-1.5.1.zip
下载Dropbox文件并创建模块。
更简单的方法是使用easy_install
或pip
*安装Dropbox模块。请尝试以下方法:
sudo pip install dropbox
对于超高级用法,请了解virtualenv和virtualenv-wrapper,这样就不会在整个地方安装数百个模块......但是现在这个问题有点超出了这个问题的范围; - )
答案 1 :(得分:1)
您应首先正确安装Dropbox包。
结帐pip或easyinstall。
使用
安装Dropbox软件包后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
运行上述代码不应返回上述错误。
答案 2 :(得分:0)
如果仔细查看错误,可以看到名为&#34; dropbox.py&#34;的文件中有一个dropbox import语句。这会导致命名空间冲突。
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时,我被这个问题所困扰,并将我的代码放入&#34; dropbox.py&#34;文件。 ;)