2014-10-26 54 views
1

我在Windows上安裝了python 2.6。我剛安裝了Dropbox的API,當我做:安裝Dropbox API for Python 2.6時出現問題

import dropbox 

它給出了一個錯誤:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "build\bdist.win32\egg\dropbox\__init__.py", line 3, in <module> 
    # $Id$ 
    File "build\bdist.win32\egg\dropbox\client.py", line 22, in <module> 
    File "C:\Python26\lib\site-packages\dropbox-2.2.0-py2.6.egg\dropbox\rest.py", line 415 
    utf8_params = {encode(k): encode(v) for k, v in params.iteritems()} 

我能做些什麼?


重現也可以在Linux:

#> python 
Python 2.6.5 (r265:79063, May 6 2011, 16:17:46) 
[GCC 4.5.0 20100604 [gcc-4_5-branch revision 160292]] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import dropbox 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.6/site-packages/dropbox-2.2.0-py2.6.egg/dropbox/__init__.py", line 3, in <module> 
    from . import client, rest, session 
    File "/usr/local/lib/python2.6/site-packages/dropbox-2.2.0-py2.6.egg/dropbox/client.py", line 22, in <module> 
    from .rest import ErrorResponse, RESTClient, params_to_urlencoded 
    File "/usr/local/lib/python2.6/site-packages/dropbox-2.2.0-py2.6.egg/dropbox/rest.py", line 415 
    utf8_params = {encode(k): encode(v) for k, v in params.iteritems()} 
            ^
SyntaxError: invalid syntax 
+1

任何你仍在使用Python 2.6的理由?現在這個版本已經6歲了。出於某種原因無法移動到Python 3的人傾向於使用Python 2.7,而其他人使用Python 3.3-3.5 – 2014-10-26 15:55:52

+0

錯誤是什麼?它看起來像你粘貼堆棧跟蹤,但不是實際的錯誤消息。 – smarx 2014-10-26 17:11:50

+0

@smarx不,這是不幸的完整的錯誤信息。沒有更多。我在使用Python 2.6的Linux下看到了同樣的問題。 – 2014-12-21 17:43:23

回答

0

這肯定是涉及到的Python 2.6。當您使用Python 2.6運行它時,Dropbox的Python SDK的安裝腳本已經引發了語法錯誤。奇怪的是,無論如何,它都會持續運行並結束。 Dropbox對Python所需的最小版本並不是非常具體,但安裝腳本建議使用2.6。不過,由於語法錯誤,導入Dropbox模塊在Windows和Linux上都會失敗。

我剛剛在我的原始Python 2.6.5環境中並行安裝了Python 2.7.9。使用2.7,Dropbox SDK將在at處安裝並加載而不會出現任何語法錯誤。

2

我很想讓它在2.6上工作,因爲我無法升級到最新版本的python。最後讓它工作。

所有你需要做的是改變字典解析

來源:

utf8_params = {encode(k): encode(v) for k, v in params.iteritems()} 

要:

for k, v in params.iteritems(): 
      utf8_params[encode(k)] = encode(v) 

和休息模塊的工作像往常一樣爲止。

我沒有代表添加評論,因此添加爲答案:)