uvloop 要求 python 3.7 但可以 运行 低版本

uvloop asks for python 3.7 but can be run with lower version

我在我的学校项目中使用开源 python 包 'farm-Haystack'。当我在 python3.6 venv 中安装 requirements.txt 时出现此错误:

Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-t35n0vdx/uvloop_059c5c705acc434ab0515b073c3e079b/setup.py", line 5, in <module>
        raise RuntimeError('uvloop requires Python 3.7 or greater')
    RuntimeError: uvloop requires Python 3.7 or greater
    ----------------------------------------

显然是说这个包需要 python 3.7,而我正在使用 python 3.6。当时我没有注意到这个错误消息,并继续使用该程序。程序编译成功,运行符合预期。

当我回滚并找到消息时,我真的很好奇为什么这个依赖仍然可以解决。我可以通过 pip freeze 找到 uvloop,也可以将其导入到我的程序中。我想知道如果 uvloop 与它需要的 python 版本不匹配,可能会出现什么结果,因为我完全不熟悉这个包。

(希望不用升级python版本,搞了好久才搞定运行成功)

其中一个软件包似乎包含 uvloop 的未固定依赖项。

uvloop 0.15.0 开始,它需要 Python 3.7 或更高版本。

要修复它需要冻结requirements.txt中的版本:

...
uvloop==0.14.0
...