You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从PyPI导入自定义Python包sumpackagesonar时出现ModuleNotFoundError

问题分析与解决方案

核心原因:包结构错误

你当前的目录结构把setup.py放在了包目录sumpackagesonar内部,这会导致setuptools的find_packages()无法正确识别要打包的模块,最终安装后的包实际上没有包含你的代码文件,所以导入时会报错。

正确的包结构调整

把setup.py移到包目录的外面,调整后的结构应该是:

sumpackagesonar_project/
    sumpackagesonar/
        __init__.py
        sum.py
    setup.py

修复后的setup.py(可选优化)

虽然find_packages()在正确结构下能自动识别包,但也可以显式指定包名避免歧义:

from setuptools import setup, find_packages

setup(
    name='sumpackagesonar',
    version='1.0.0',
    packages=['sumpackagesonar'],  # 显式指定包名
    # 或者继续用find_packages(),此时它会找到sumpackagesonar目录
    # packages=find_packages(),
)

重新构建并上传

  1. 删除旧的dist目录
  2. 重新生成分发文件:
    python setup.py sdist bdist_wheel
    
  3. 用twine重新上传到PyPI:
    twine upload dist/*
    

安装后验证

安装完成后,先检查包的安装文件列表,确认代码是否被正确安装:

pip show -f sumpackagesonar

如果输出里能看到sumpackagesonar/__init__.py和sumpackagesonar/sum.py,说明安装正常。

环境一致性检查

确保你运行import时用的Python解释器,和安装包时用的pip属于同一个环境:

  • 如果用pip install,就用python运行脚本
  • 如果用pip3 install,就用python3运行脚本
    可以用以下命令验证:
# 查看pip对应的Python路径
pip --version
# 查看当前python的路径
which python  # Linux/macOS
where python  # Windows

如果路径不一致,说明环境不匹配,需要用对应环境的pip重新安装。

内容的提问来源于stack exchange,提问作者Sonarjit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:58:23