在自定义包中安装 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 上存在的依赖项的副本。例如:
- 存在:https://pypi.org/project/psycopg2-binary/2.8.4/
- 不存在:https://test.pypi.org/project/psycopg2-binary/2.8.4/
您可以将 pip 配置为在缺少包时回退到 TestPyPI,而不是指定 --extra-index-url
:
pip install your_project --extra-index-url https://test.pypi.org/simple
我正在尝试使用 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 上存在的依赖项的副本。例如:
- 存在:https://pypi.org/project/psycopg2-binary/2.8.4/
- 不存在:https://test.pypi.org/project/psycopg2-binary/2.8.4/
您可以将 pip 配置为在缺少包时回退到 TestPyPI,而不是指定 --extra-index-url
:
pip install your_project --extra-index-url https://test.pypi.org/simple