Python包安装后仅生成dist-info无代码,求助排查问题
问题与解决建议
核心问题
- 上传至TestPyPI的包安装后仅生成
dist-info目录,无实际代码文件 - 安装时触发依赖查找错误:
INFO: pip is looking at multiple versions of internet-archive-uploader to determine which version is compatible with other requirements. This could take a while. ERROR: Could not find a version that satisfies the requirement internetarchive (from internet-archive-uploader) (from versions: none) ERROR: No matching distribution found for internetarchive
操作流程回顾
安装命令
pip install -i https://test.pypi.org/simple/ internet-archive-uploader==1.0
构建与上传步骤
- PowerShell构建脚本:
Remove-Item 'dist' -Confirm Remove-Item 'internet_archive_uploader.egg-info' -Confirm pip install -e . py -m build - 上传命令:
py -m twine upload --repository testpypi dist/*
问题排查与修复方案
1. 安装后无实际代码的修复
问题根源是构建时未正确包含源码文件,需调整配置:
- 修正
setup.py的包路径:项目源码在Internet_Archive_Uploader目录下,需确保packages参数正确指向该目录。修改setup.py中的对应配置:# 方式1:使用find_packages指定路径 from setuptools import find_packages, setup setup( # ...其他配置 packages=find_packages(where="Internet_Archive_Uploader"), package_dir={"": "Internet_Archive_Uploader"}, ) # 方式2:直接指定包名 setup( # ...其他配置 packages=["Internet_Archive_Uploader"], package_dir={"Internet_Archive_Uploader": "Internet_Archive_Uploader"}, ) - 添加
MANIFEST.in文件:在项目根目录创建该文件,确保源码被包含:include Internet_Archive_Uploader/*.py - 确认包目录结构:
Internet_Archive_Uploader目录下必须存在__init__.py文件(可空),否则Python无法识别为合法包。
2. 依赖internetarchive找不到的修复
TestPyPI是独立索引,未同步PyPI的公共包,因此直接安装会找不到internetarchive。解决方式:
- 安装时同时指定PyPI作为额外索引源,让pip从TestPyPI拉取你的包,从PyPI拉取依赖:
pip install -i https://test.pypi.org/simple/ internet-archive-uploader==1.0 --extra-index-url https://pypi.org/simple/
内容的提问来源于stack exchange,提问作者jgore200377
相关产品推荐
相关产品推荐

