问题描述
我在学校项目中使用开源 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
...