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

Python导入同目录文件遇ModuleNotFoundError的解决方法

解决ModuleNotFoundError: No module named 'Chessbot'问题

你的文件结构如下:

桌面
└── programming
    └── Chessbot
        ├── ChessEngine.py
        └── ChessMain.py

报错核心原因:直接运行ChessMain.py时,Python的当前工作目录是Chessbot文件夹,它会在自身的模块搜索路径(sys.path)里查找名为Chessbot的模块,但该模块就是当前所在文件夹,自然无法匹配。以下是几种可行的解决办法:

方法1:同目录直接导入(最简单)

两个文件处于同一文件夹下,直接用同目录导入逻辑:

# ChessMain.py 第一行修改为
import ChessEngine

如果是作为包的一部分被导入(而非直接运行脚本),也可以用相对导入:

from . import ChessEngine

方法2:将父目录加入Python搜索路径

若你坚持要用from Chessbot import ChessEngine的写法,可在ChessMain.py开头添加代码,把programming目录加入Python的模块搜索路径:

import sys
import os

# 追溯当前文件的父级目录(即programming)
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)

# 此时即可正常导入
from Chessbot import ChessEngine

方法3:将Chessbot转为Python包并从正确路径运行

  1. 在Chessbot文件夹中创建一个空的__init__.py文件,让Python将其识别为合法包:
Chessbot/
├── __init__.py
├── ChessEngine.py
└── ChessMain.py
  1. 打开终端切换到programming目录(而非Chessbot目录),再运行脚本:
python Chessbot/ChessMain.py

此时from Chessbot import ChessEngine可正常工作,因为programming是当前工作目录,Python会在此路径下找到Chessbot包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:29:55