在 Python 3 中使用导入保管箱时出现语法错误

Syntax error when using import dropbox in Python 3

我正在尝试将 Dropbox 与 Python 一起使用 3. 它似乎安装正常,但是当我尝试导入它时,出现语法错误(见下文)。它仅在 3.4+ 上受支持,我正在使用 3.2...我想知道这是否是问题所在,但我找到了一个网站(在 original German or in English 中使用 Google 翻译,但格式不正确) 在 Raspberry Pi 上使用带有 Python 3.2 的 Dropbox - 这正是我想要做的。

在此先致谢 - 如有任何帮助或建议,我们将不胜感激。

pi@jsmd ~ $ sudo pip-3.2 install --upgrade dropbox
Requirement already up-to-date: dropbox in /usr/local/lib/python3.2/dist-packages/dropbox-4.0-py3.2.egg
Requirement already up-to-date: urllib3 in /usr/local/lib/python3.2/dist-packages (from dropbox)
Requirement already up-to-date: requests>=2.5.1 in /usr/local/lib/python3.2/dist-packages (from dropbox)
Requirement already up-to-date: six>=1.3.0 in /usr/local/lib/python3.2/dist-packages (from dropbox)
Cleaning up...

pi@jsmd ~ $ python3.2
Python 3.2.3 (default, Mar  1 2013, 11:53:50)
[GCC 4.6.3] 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/python3.2/dist-packages/dropbox-4.0-py3.2.egg/dropbox/__init__.py", line 3, in <module>
    from .dropbox import __version__
  File "/usr/local/lib/python3.2/dist-packages/dropbox-4.0-py3.2.egg/dropbox/dropbox.py", line 19, in <module>
    from .base import DropboxBase
  File "/usr/local/lib/python3.2/dist-packages/dropbox-4.0-py3.2.egg/dropbox/base.py", line 7, in <module>
    from . import (
  File "/usr/local/lib/python3.2/dist-packages/dropbox-4.0-py3.2.egg/dropbox/files.py", line 5157
    Metadata._parent_shared_folder_id_validator = bv.Nullable(bv.String(pattern=u'[-_0-9a-zA-Z:]+'))
                                                                                                 ^
SyntaxError: invalid syntax

所提供的 Dropbox Python SDK 的 当前版本 使用 u'...' 符号来定义 Unicode 文字。这是 Python 3.3 中引入的一种语法,用于帮助编写适用于 Python 2 和 3 的代码。

博客 post 没有详细说明他们是如何设法绕过最低要求的;我只能认为在 post 发布 之后,库已更新以利用更新的 Python 功能来简化多语言 Python 代码

当前dropbox包版本为4.0;查看 simple pypi page for the package 上的版本,看看早期版本是否适合您。

不过我不确定博客使用的版本是否可用。 Version 3.12 was published to PyPI in August 2015, so well after May 2015 (when the blog post was posted) and already requires Python 3.3 or newer (judging by the initial API v2 commit on Github). The next older release is version 2.2.0,可追溯到 2014 年 9 月并使用 Dropbox API 版本 1。