如何解决Python包dijkstra-conda的依赖安装失败问题?
解决依赖找不到的问题
问题根源
你用-i https://test.pypi.org/simple/指定pip只从TestPyPI拉取包,但TestPyPI是测试专用仓库,绝大多数常用依赖(比如pytest、geopandas)的正式版本都没有上传到这里,导致pip找不到符合版本要求的依赖包。
解决方案
1. 安装时同时指定双源
用--extra-index-url添加官方PyPI作为额外源,让pip从TestPyPI拉取你的目标包,从官方PyPI拉取依赖。执行以下命令:
pip install -i https://test.pypi.org/simple/ dijkstra-conda==45097613 --extra-index-url https://pypi.org/simple/
注意:-i设置主索引(优先找你的包),--extra-index-url是补充索引(用于找依赖),不要搞反顺序。
2. 把开发依赖移出install_requires
pytest是测试用的开发依赖,不该放在用户安装包时默认安装的install_requires里。修改你的setup.py:
# 原install_requires去掉pytest install_requires=['setuptools>=63.4.1','click>=8.1.3','geopandas>=0.11.1','bidict>=0.21.2','multidict>=6.0.2','networkx>=2.8.6','pandas>=1.4.3','shapely>=1.8.4'], # 添加测试依赖 tests_require=['pytest>=7.1.3'], # 或者用 extras_require 让用户可选安装开发依赖 extras_require={ 'dev': ['pytest>=7.1.3'], },
普通用户安装你的包时不会自动装pytest,只有开发/测试场景下,可通过pip install dijkstra-conda[dev]安装这套依赖。
3. 验证包上传完整性
确认你上传到TestPyPI的dijkstra-conda包包含正确元数据:可以下载包后解压,查看PKG-INFO文件里的依赖列表是否和setup.py配置一致。
内容的提问来源于stack exchange,提问作者forestbat
相关产品推荐
相关产品推荐

