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

运行main.py遇ModuleNotFoundError:找不到conf模块的解决求助

解决Python模块导入错误:ModuleNotFoundError: No module named 'conf'

项目文件结构

root
|- src
|  |-bot
|  | |-conf
|  | | |-data.py
|  | |-model.py 
|- main.py

相关代码

model.py 代码

from conf.data import old_data

def somemodel(new_data):
  old_data += new_data
  # (more working with data)

main.py 代码

from src.bot.model import somemodel

def main():
  somemodel(new_data)

问题情况

单独运行model.py时,导入conf.data完全正常;但在根目录下运行main.py,就会抛出错误:

ModuleNotFoundError: No module named 'conf'

原因很明确:运行model.py时,Python把bot目录当作模块查找根,能找到conf;但跑main.py时,查找根是root目录,自然找不到conf文件夹。

解决方法

方法1:给model.py换相对导入

把model.py里的导入语句改成相对路径,基于当前文件的位置引用conf:

from .conf.data import old_data

def somemodel(new_data):
  old_data += new_data
  # (more working with data)

注意:用了相对导入后,不能直接运行model.py(此时它不属于包的一部分),但从main.py导入调用完全没问题。

方法2:给model.py用绝对导入

改成基于项目根目录的绝对路径导入,不管从哪运行,只要root在Python的模块查找路径里,就能正常导入:

from src.bot.conf.data import old_data

def somemodel(new_data):
  old_data += new_data
  # (more working with data)

方法3:设置PYTHONPATH环境变量

在运行main.py之前,把项目根目录root加到PYTHONPATH里:

  • Linux/macOS终端:
export PYTHONPATH=/path/to/root:$PYTHONPATH
python main.py
  • Windows命令行:
set PYTHONPATH=C:\path\to\root;%PYTHONPATH%
python main.py

这样Python会把root纳入模块查找范围,model.py里的from conf.data import...就能被正确解析成src/bot/conf/data。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:02:15