使用 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 之一,问题应该会消失。
我已将 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 之一,问题应该会消失。