You need to enable JavaScript to run this app. PyPI上传的ethbotutils包安装后导入报ModuleNotFoundError如何解决
优惠活动
大模型
产品
解决方案
定价
更多

PyPI上传的ethbotutils包安装后导入报ModuleNotFoundError如何解决

问题修复方案

核心原因

你遇到的导入失败问题是setup.py的packages参数配置错误,导致包结构未被正确打包:
你当前配置的packages=["."]会将项目根目录下的所有Python文件直接打包到Python环境的site-packages根路径,不会生成名为ethbotutils的包目录,因此无法通过import ethbotutils导入包,只能直接导入根目录下的单个脚本(比如import bot_utils),和你测试的现象完全吻合。

修复步骤

1. 调整项目为标准Python包结构

首先按照如下结构调整你的项目文件层级:

项目根目录/
├── pyproject.toml
├── setup.py
└── ethbotutils/  # 新增与包名同名的目录
    ├── __init__.py  # 必须存在,用于标识该目录为Python可导入包
    ├── bot_utils.py
    └── 其他你需要打包的Python脚本文件

2. 修改setup.py配置

将packages参数修改为自动扫描包,或者显式指定包名:

from setuptools import setup, find_packages

setup(
    name='ethbotutils',
    version='1.1',  # 版本号需为字符串格式,与发布版本保持一致
    packages=find_packages(),  # 自动扫描项目内所有合法Python包
    install_requires=["requests~=2.25.1", "PyYAML~=5.4.1"],
    python_requires=">=3.6"
)

你也可以不用find_packages(),直接写packages=["ethbotutils"],效果完全一致。

3. 配置包导入逻辑(可选)

如果你希望执行import ethbotutils时就能直接使用包内的方法、类,可以在ethbotutils/__init__.py中提前暴露需要对外提供的内容:

# 示例:将bot_utils内的所有内容对外暴露
from .bot_utils import *
# 也可以只暴露指定的对象:from .bot_utils import 函数名, 类名

4. 重新发布测试

  • 先卸载本地已安装的旧版本包:
pip uninstall -y ethbotutils
  • 重新构建包并上传至PyPI,之后安装新版本即可正常通过import ethbotutils导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:51:03