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

Python导入同目录functionsList.py内函数报ModuleNotFoundError怎么办

同路径Python模块导入报错ModuleNotFoundError原因及解决方案

核心原因

Python导入模块时会按照sys.path列表中的路径顺序依次查找模块,出现该报错是因为functionsList.py所在的目录没有被加入到sys.path的扫描范围中,Python扫描完所有路径都找不到对应模块才会抛出错误,而非特意去第三方库中查找。你提前导入sys模块本身不会影响导入逻辑,只有修改sys.path的操作才会改变模块查找顺序。

常见触发原因

  • 两个文件实际路径不匹配:你认为的「同路径」和实际存储路径不一致,比如functionsList.py被放在了子文件夹中,或者存在拼写、大小写差异(Linux/macOS系统对文件名大小写敏感,FunctionsList.py和functionsList.py会被识别为两个不同文件)。
  • 运行脚本时工作目录错误:你在终端运行脚本时,当前工作目录不是脚本所在的目录。比如两个文件都存放在/project/py/路径下,你在/project/路径下执行python py/你的脚本名.py,此时Python的工作目录是/project/,不会扫描/project/py/路径下的本地文件。
  • sys.path被修改:如果你导入sys后执行过sys.path.append、sys.path.insert操作,将其他路径的优先级提到了脚本所在目录之前,也会导致Python优先扫描其他路径,找不到对应模块。

解决方法

临时修复(单次运行生效)

  1. 运行脚本前先切换到脚本所在的目录,再执行运行命令,比如两个文件都放在D:\pythonCode\下,终端先执行cd D:\pythonCode,再运行你的脚本文件。
  2. 在导入functionsList前,手动将当前脚本所在目录加到sys.path最前面,保证优先扫描该路径:
import sys
import os
# 将当前脚本所在目录加入sys.path的最高优先级位置
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from functionsList import function1, function2

永久修复(项目级生效)

  • 将你的项目根目录加入系统的PYTHONPATH环境变量,之后所有Python进程都会自动扫描该目录下的模块。
  • 按照Python项目规范组织代码,在项目根目录、各子目录下添加空的__init__.py文件声明为Python包,之后使用规范的相对导入/绝对导入语法引入模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:36:01