uvloop 要求使用 python 3.7,但可以使用较低版本运行

问题描述

我在学校项目中使用开源 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.6 时,这个包需要 python 3.7。我当时没有注意到这个错误信息并继续使用该程序。程序编译成功并按预期运行。

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

(希望我不用升级python版本,我花了很长时间才让一切运行成功)

解决方法

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

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

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

...
uvloop==0.14.0
...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...