Python包上传PyPI遇异常:目录结构不符合预期
解决PyPI包安装后目录结构异常的问题
问题根源
- 项目内
my_module/目录下嵌套了多余的my_module/目录,其中包含PKG-INFO等打包残留文件,干扰正常打包流程。 setup.py配置可能未正确指定待打包模块,或未清理旧构建产物,导致最终包仅包含dist-info目录,缺失实际代码。
解决步骤
清理无效文件和目录
先删除嵌套的残留目录:rm -r my_project/my_module/my_module/再清理所有旧构建产物:
rm -r my_project/build/ my_project/dist/ my_project/*.egg-info/修正setup.py配置
确保配置正确指定打包模块,示例如下:from setuptools import setup, find_packages setup( name="my_module", # 需与dist目录下的包名一致 version="1.1.5", packages=find_packages(), # 自动识别项目中的my_module包 include_package_data=True, # 若需打包test.txt这类非Python文件,需开启此选项 # 补充其他必要配置:author、description、install_requires等 )若要包含
test.txt,需在项目根目录创建MANIFEST.in文件,内容:include my_module/test.txt重新构建并上传
执行标准打包和上传命令:python setup.py sdist bdist_wheel twine upload dist/*验证安装结果
在干净虚拟环境中安装并检查:pip install my_module==1.1.5 pip show -f my_module此时
site-packages中应同时存在my_module/代码目录和my_module-1.1.5.dist-info/目录。
内容的提问来源于stack exchange,提问作者FrostDream
相关产品推荐
相关产品推荐

