使用 setup.py 安装包时出现问题

Problem installing package using setup.py

我已将 setup.py 设置为从 requirements.txt 获取依赖项,这些依赖项是我从项目的虚拟环境生成的。如下:

在我的环境中:

pip3 freeze > requirements.txt

然后:

with open('requirements.txt') as f:
    required = f.read().splitlines()

setuptools.setup(
    ...
    install_requires=required,
    ...
)

但是当我尝试安装我的包时显示了这个错误:

raise RequirementParseError(str(e))
pip._vendor.pkg_resources.RequirementParseError: Parse error at "'(===file'": Expected stringEnd

所以在检查我的 requirements.txt 文件时,我发现这一定是包安装失败的根本原因:

avro-python3===file-.avro-VERSION.txt

我没有明确安装它,它是一个传递依赖项。当我尝试安装 avro-python3 时,出现以下错误:

Requirement already satisfied: avro-python3 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (file-.avro-VERSION.txt)

我该怎么做才能解决我的问题?

谢谢。

发生此错误是因为 setup 方法不期望版本具有格式 file-.avro-VERSION.txt。我怀疑字符“-”困扰着解析器,因为它期望字符串而不是该字符结束。

我建议您尝试在 requirements.txt 文件上使用 the official versions 之一,问题应该会消失。