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

从PyPI导入自制Python包时出现ModuleNotFoundError求助

问题排查与解决方案

核心问题分析

你的导入错误本质是包的目录结构不符合setuptools的打包要求,导致发布后的包没有生成Python可识别的标准包结构,进而无法被import找到。

具体修复步骤

1. 调整文件结构

当前src目录下缺少包含__init__.py的ch_package子目录(这是Python包的必要标识),修改后的正确结构应为:

项目根目录/
├── setup.py
├── README.md
└── src/
    └── ch_package/
        └── __init__.py

将你的name函数直接写入src/ch_package/__init__.py中:

def name(text):
    return 'My name is Chanaka'

2. 确认setup.py配置

你的现有setup.py配置是正确的:

  • packages=setuptools.find_packages(where='src')会自动在src目录下识别到ch_package包(因为存在__init__.py)
  • package_dir={'':'src'}正确指定了包的根目录为src

3. 重新发布与验证

  • 卸载本地已安装的错误版本:
    pip uninstall ch_package -y
    
  • 重新构建包文件:
    python setup.py sdist bdist_wheel
    
  • 上传新版本到PyPI(需提前安装twine:pip install twine):
    twine upload dist/*
    
  • 安装更新后的包并测试:
    pip install ch_package --upgrade
    
    此时执行from ch_package import name即可正常导入。

额外验证

可以查看Python site-packages目录下的ch_package文件夹,确认其包含__init__.py文件,以此验证包结构是否正确安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:33:16