【问题标题】:pip install py2neo failingpip install py2neo 失败
【发布时间】:2018-08-21 05:09:07
【问题描述】:

我正在尝试安装 py2neo 模块,但以以下错误结束。请帮我解决它。

(base) C:\Users\ADMIN>pip install py2neo Collecting py2neo   Using cached https://files.pythonhosted.org/packages/cd/79/a77cc0ad86c021c25dac9f52a0cd33f6832c6af7fa5e58f4438d781ae9c3/py2neo-4.0.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\users\admin\appdata\local\temp\pip-install-xj8t67\py2neo\setup.py", line 25, in <module>
    from py2neo.meta import __author__, __email__, __license__, __package__, __version__
  File "py2neo\__init__.py", line 19, in <module>
    from py2neo.data import *
  File "py2neo\data.py", line 26, in <module>
    from py2neo.cypher import LabelSetView, cypher_repr, cypher_str
  File "py2neo\cypher\__init__.py", line 36, in <module>
    from py2neo.internal.collections import SetView
  File "py2neo\internal\collections.py", line 24, in <module>
    from py2neo.internal.compat import bytes_types, string_types
  File "py2neo\internal\compat.py", line 45, in <module>
    DEVNULL = open(devnull, "rw")
ValueError: Invalid mode ('rw')

Command "python setup.py egg_info" failed with error code 1 in c:\users\admin\appdata\local\temp\pip-install-xj8t67\py2neo\

我也尝试升级 setuptools 和 pip,但之后也无法安装 py2neo。

我的 python 版本是 2.7,在 win 10 操作系统上工作。

【问题讨论】:

  • 来自自述文件:“另请注意,Py2neo 是在 Linux 下使用标准 CPython 发行版开发和测试的。虽然其他操作系统和 Python 发行版也可以工作,但不提供对它们的支持。”

标签: python neo4j pip py2neo


【解决方案1】:

这是库中的错误。以"rw" 模式打开文件是非法的,他们显然正在这样做。你可以看到代码here。几乎可以肯定,这里应该使用"r+"


值得注意的是,这段代码仅在旧版本的 Python 上运行,在 3.3 中添加 subprocess.DEVNULL 之前。虽然 2.7 仍被列为官方支持,但它似乎处于“传统模式”,有一堆“兼容”代码试图让 2.7 像 3.3+ 一样工作,包括这一行,其中一些兼容代码可能不是经过大量测试。

另外,这段代码可能只在 Windows 上需要。如果是这样,正如自述文件所说:

另请注意,Py2neo 是在 Linux 下使用标准 CPython 发行版开发和测试的。虽然其他操作系统和 Python 发行版也可以工作,但不提供对这些的支持。

因此,他们的 2.7 兼容代码在他们不支持的平台上被破坏这一事实并不令人惊讶……


你能做些什么呢?

  • 尝试运行 Python 3.7 或 3.6 而不是 2.7。这肯定会消除这个问题,可能还有其他你还没有遇到过的问题。
  • 运行一个 linux VM(/container/user-mode kernel/whatever),并在 linux 下安装 Python(最好是 3.7)和 py2neo。这肯定会消除这个问题,可能还有其他问题。
  • 自行修复错误并提交拉取请求。
  • 提交错误报告并等待,看看是否有人修复它。

【讨论】:

  • 谢谢@abarnet ,将按照这些说明进行操作。
【解决方案2】:

也试试这个:

这是基本要求:

Python 2.7 / 3.4 / 3.5 / 3.6 / 3.7 Neo4j 3.2 / 3.3 / 3.4 / 3.5(推荐各版本最新点发布)

pip install git+https://github.com/technige/py2neo.git#egg=py2neo

【讨论】:

    猜你喜欢
    • 2015-12-22
    • 2012-09-24
    • 2018-10-11
    • 2015-05-05
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多