【问题标题】:Python2.7 : import multidictPython2.7:导入多字典
【发布时间】:2017-01-10 18:11:32
【问题描述】:

我是 python 初学者,在 windows 7 中使用 python 2.7.11。从http://www.lfd.uci.edu/~gohlke/pythonlibs/#multidict 下载了 multidict multidict 2.1.2-wheel 并使用 pip install 成功安装。

导入multidict显示错误

    yield from self._items
SyntaxError: invalid syntax

我删除了单词from .py 并且错误消失了。再次运行显示 from collections import abc (

ImportError: cannot import name abc

我也使用了import abc,但没有成功。 _multidict_py.py 文件的代码位于所有 from collections import abc 之上。

python 3.4 的官方 multidict 提供轮。我的大部分库和包在 py27 上运行良好,因此目前没有升级到 3.4

我还安装了 MultiDict - Werkzeug,但它也需要 multidict。 Dict 不支持唯一键,而我需要具有不同值的多个键。

【问题讨论】:

  • 好吧,有些软件包不再支持 python 2。也许您在pypi 的某个地方找到了该软件包的合适(旧)版本。不确定我们可以如何帮助您。我不建议更新到 python 3.4 - 如果您决定更新到 python 3,请选择最新版本(当前为 3.6)。
  • @MSeifert:该项目从不支持 3.4 及更高版本以外的任何内容。

标签: python import mapping


【解决方案1】:

更新:我联系了 Gohlke 先生,现在 2.7 轮子已被移除。


我不确定 Christoph Gohlke 为什么要提供该软件包,因为它与 Python 2 不兼容。也从来没有兼容的版本。

来自PyPI project page

  • 编程语言 :: Python
  • 编程语言 :: Python :: 3
  • 编程语言 :: Python :: 3.4
  • 编程语言 :: Python :: 3.5

该项目需要 Python 3.4 及更高版本。

您不能只编辑掉您看到的语法错误。例如,yield from 是协程中使用的 Python 3 新概念,不能只替换为 yield

请注意,Werkzeug 版本是一个不同的项目,是同一想法的不同实现。 werkzeug 在 Python 2.7 上运行良好。

【讨论】:

  • Martijn,我已经从非官方lfd.uci.edu/~gohlke/pythonlibs/#multidict站点下载并成功安装了multidict-2.1.2-cp27-cp27m-win32.whl,因为官方pypi.python.org/pypi/multidict只有multidict-2.1.4-cp34- cp34m-win32.whl。 pip freeze 显示 multidict 已安装
  • @kakakhan2016: 是的,但是该包中的代码 不适用于 2.7。这是代表该站点的错误。你不能在 Python 2.7 上运行它。
  • 谢谢。所以我必须升级到 python 34。
  • @kakakhan2016:我会直接使用 Python 3.6;您将获得 3.4 提供的所有功能以及错误修复和新功能。
【解决方案2】:

感谢马丁·彼得斯。我已经安装了最新的 python 并且包括 multidict 在内的所有包/库都运行良好。感谢您的回答。

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多