在自定义包中安装 pip 时,如何为 install_requires 列表修复 'Could not find a version that satisfies the requirement'?

How to fix 'Could not find a version that satisfies the requirement' for install_requires list when pip installing in custom package?

我正在尝试使用 twine 包构建我自己的 Python 包(可通过 pip 安装)。这一切都进行得很顺利,直到我尝试 pip 安装我的实际包(所以在上传到 PyPi 之后)。

所以我先运行:

python3 setup.py sdist bdist_wheel

其中我的 setup.py install_requires 列表如下所示:

install_requires=[
'jupyter_kernel_gateway==2.4.0',
'pandas==1.0.2',
'numpy==1.18.1',
'azure-storage-blob==2.0.1',
'azure-datalake-store==0.0.48',
'psycopg2-binary==2.8.4',
'xlsxwriter==1.2.6',
'SQLAlchemy==1.3.12',
'geoalchemy2==0.6.3',
'tabulate==0.8.2',
'pyproj==1.9.6',
'geopandas==0.4.0',
'contextily==0.99.0',
'matplotlib==3.0.2',
'humanize==0.5.1',
'ujson==1.35',
'singleton-decorator==1.0.0',
'dataclasses==0.6',
'xlrd==1.2.0'],

根据我的理解,这些install_requires会在安装我自己的包时通过pip安装。

之后我运行

python3 -m twine upload --repository testpypi dist/*

实际将我的包上传到 PyPi。但是,当 pip 安装我的包时,我收到错误消息,指出没有满足列出的许多要求的版本。例如:ERROR: Could not find a version that satisfies the requirement psycopg2-binary==2.8.4

当我手动安装这些包时(例如 pip install psycopg2-binary==2.8.4),它们会被安装。

有什么方法可以使我的包的 pip 安装真正成功地安装 install_requires 要求列表?

你没有展示你的 pip install-ing 你的包裹,但我猜你正在使用类似的东西:

pip install your_project --index-url https://test.pypi.org/simple

问题是 TestPyPI 不包含 PyPI 上存在的依赖项的副本。例如:

您可以将 pip 配置为在缺少包时回退到 TestPyPI,而不是指定 --extra-index-url

pip install your_project --extra-index-url https://test.pypi.org/simple