使用Poetry上传包至TestPyPI后安装遇依赖错误求助
解决方案
问题1:找不到符合要求的soupsieve版本
TestPyPI的包索引不包含正式PyPI上的所有依赖包(比如soupsieve),直接从TestPyPI安装时,pip无法获取beautifulsoup4所需的对应版本依赖。解决方式是安装时同时指定正式PyPI作为额外索引源,让pip从TestPyPI拉取你的自定义包,从正式PyPI拉取依赖:
pip3 install -i https://test.pypi.org/simple/ my-package==0.1.0 --extra-index-url https://pypi.org/simple/
问题2:use_2to3无效的元数据生成错误
移除beautifulsoup4版本限制后,pip可能拉取了过旧的版本——这些旧版beautifulsoup4使用了已被新版pip(21.0+)废弃的use_2to3参数,导致元数据生成失败。结合你指定的Python版本(^3.9),建议保留beautifulsoup4 = "^4.11.1"的版本限制(该版本已不再依赖use_2to3),再配合上面的安装命令,即可同时解决依赖缺失和兼容性问题。
额外优化建议
- 避免用
*作为依赖版本限制(比如fire、requests),这会导致安装时自动拉取最新版本,可能引发未知兼容性问题。建议指定合理的版本范围,例如^2.0.0(兼容2.x系列的小版本更新)或>=2.0.0,<3.0.0。 - 若非要在TestPyPI测试完整依赖链,需将所有依赖包也上传至TestPyPI,但这种方式效率极低,日常测试用
--extra-index-url的方案更实用。
内容的提问来源于stack exchange,提问作者Cal
相关产品推荐
相关产品推荐

