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

Python包__init__.py单独运行正常,被调用时出现模块导入错误

问题解决方法

核心原因

运行example.py时,Python的模块搜索路径(sys.path)包含的是example.py所在的MePy目录;而直接运行mecom/__init__.py时,当前工作目录是mecom文件夹,该目录会被自动加入sys.path,因此能找到同目录下的magic.py。但作为包导入mecom时,__init__.py里的from magic import ...是绝对导入,Python会在sys.path的顶层目录找magic模块,而magic.py实际在mecom包内部,所以报错。

解决方案

方案1:修改包内的导入语句(推荐)

打开mecom/__init__.py,把导入语句改成相对导入,因为magic.py和__init__.py属于同一个mecom包:

from .magic import MeCom, MeComSerial, MeComTcp, VR, VS, Parameter

这样无论从哪个路径导入mecom包,Python都会在包内部查找magic模块,避免路径问题。

方案2:临时调整运行环境(仅用于测试)

如果不想修改源码,可以在运行example.py前,把mecom所在的目录添加到PYTHONPATH环境变量中:

  • Windows命令行:
    set PYTHONPATH=.\MePy
    python example.py
    
  • Linux/macOS终端:
    export PYTHONPATH=./MePy
    python example.py
    

或者在example.py开头添加代码,手动把mecom目录加入搜索路径:

import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:42:39