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

Python包发布后遇ModuleNotFoundError:找不到helpers模块

解决Python包导入ModuleNotFoundError: No module named 'helpers'问题

问题分析

从报错回溯看,你的rdfdf.py中使用了from helpers.rdfdf_utils import anaphoric的绝对导入语句,但安装后helpers是rdfdf包的子模块,Python会在全局模块路径中查找helpers,而非rdfdf包的子目录,导致找不到模块。另外需确保打包配置正确包含helpers子包。

解决方案

1. 修正导入语句

将rdfdf.py中的导入语句改为以下两种方式之一:

  • 相对导入(推荐,适用于包内模块引用):
    from .helpers.rdfdf_utils import anaphoric
    
    注意前面的.,表示从当前模块的同级子模块中导入。
  • 绝对导入(明确指定包路径):
    from rdfdf.helpers.rdfdf_utils import anaphoric
    

2. 确保打包配置包含子包

如果使用setuptools,修改setup.py确保正确识别helpers子包:

from setuptools import setup, find_packages

setup(
    name="rdfdf",
    version="你的版本号",
    # 自动查找所有含__init__.py的子包
    packages=find_packages(),
    # 若你的包结构是单文件+子目录(如根目录下rdfdf.py和helpers/),则用以下配置:
    # packages=["rdfdf"],
    # package_dir={"rdfdf": "."},
    # include_package_data=True,
    # package_data={"rdfdf": ["helpers/*.py", "helpers/__init__.py"]},
)

若使用pyproject.toml,添加包配置:

[project]
name = "rdfdf"
version = "你的版本号"
# 自动查找所有包
packages = { find = {} }

3. 重新打包发布

执行以下命令更新PyPI上的包:

# 删除旧打包文件
rm -rf dist/ build/ *.egg-info
# 重新构建包
python -m build
# 上传到PyPI(需提前安装twine)
twine upload dist/*

4. 验证修复

卸载旧版本并重新安装:

pip uninstall -y rdfdf
pip install rdfdf

测试导入:

python -c "from rdfdf import DFGraphConverter"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:22:32