【问题标题】:Having trouble installing Dropbox API for Python 2.6为 Python 2.6 安装 Dropbox API 时遇到问题
【发布时间】:2014-10-26 15:14:43
【问题描述】:

我在 Windows 上安装了 python 2.6。我刚刚安装了 Dropbox API,当我安装时:

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

【问题讨论】:

  • 你还在使用 Python 2.6 有什么原因吗?那个版本到现在已经 6 岁了。出于某种原因无法迁移到 Python 3 的人倾向于坚持使用 Python 2.7,而其他人都在使用 Python 3.3-3.5
  • 错误是什么?您似乎粘贴了堆栈跟踪,而不是实际的错误消息。
  • @smarx 不,不幸的是,这是完整的错误消息。没有更多了。我在使用 Python 2.6 的 Linux 下看到了同样的问题。
  • @smarx 好的,忘了,实际的错误是“SyntaxError: invalid syntax”

标签: python linux windows dropbox-api


【解决方案1】:

我急于让它在 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)

到目前为止,模块的其余部分都照常工作。

我没有代表添加评论,所以添加作为答案:)

【讨论】:

    【解决方案2】:

    这肯定与 Python 2.6 有关。当您使用 Python 2.6 运行 Dropbox 的 Python SDK 的安装脚本时,它已经抛出语法错误。奇怪的是,它继续运行并完成。 Dropbox 对所需的最低 Python 版本不是很具体,但安装脚本建议使用 2.6。尽管如此,由于语法错误,在 Windows 和 Linux 上导入 Dropbox 模块都会失败。

    我刚刚将 Python 2.7.9 与我原来的 Python 2.6.5 环境并行安装。在 2.7 中,Dropbox SDK 安装和加载时不会出现任何语法错误。

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2012-11-02
      • 2013-12-13
      相关资源
      最近更新 更多