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

解决ModuleNotFoundError: No module named 'game'及同目录Python模块导入问题

解决ModuleNotFoundError: No module named 'game'报错

项目背景

你的文本类小游戏项目文件都放在game文件夹中,目录结构如下:

C:.
    boucle_de_jeu.py
    clss.py
    documentation.md
    fonctions_boucle_jeu.py
    idees.txt
    map_developpement.py
    meta_data.json

各核心文件作用:

  • boucle_de_jeu.py:游戏循环主脚本
  • clss.py:存储游戏物品类
  • fonctions_boucle_jeu.py:主脚本依赖的工具函数
  • map_developpement.py:导入类并创建游戏实例

运行boucle_de_jeu.py时出现如下报错:

PS C:\Users\...\python\game> py boucle_de_jeu.py
Traceback (most recent call last):
  File "C:\Users\...\python\game\boucle_de_jeu.py", line 6, in <module>
    import game.map_developpement as map_items
ModuleNotFoundError: No module named 'game'

当前使用的导入语句:

# ...
import sys
from os import system

# ...
import game.map_developpement as map_items
import game.fonctions_boucle_jeu as fct_boucle

解决方法

方法一:修改导入语句(无需调整目录结构)

所有文件处于同一层级目录,直接导入模块名即可,不需要添加game.前缀:

# 替换原导入语句
import map_developpement as map_items
import fonctions_boucle_jeu as fct_boucle

Python会默认在当前脚本所在目录搜索模块,修改后即可正常运行。

方法二:将game转为Python包(规范的长期方案)

如果希望保留game.xxx的导入风格,可将game文件夹转为合法的Python包:

  1. 在game文件夹内创建空的__init__.py文件(无需写入内容,仅用于标记该文件夹为Python包)
  2. 从game的上级目录运行脚本:比如当前你在game目录下,先切换到上级目录(如C:\Users\...\python),执行命令:
py -m game.boucle_de_jeu

这种方式更符合Python项目的规范,便于后续扩展模块。

方法三:动态添加路径(临时 workaround)

如果暂时不想修改导入语句或目录结构,可在boucle_de_jeu.py开头添加代码,将当前目录加入Python模块搜索路径:

import sys
import os
# 添加当前脚本所在目录到搜索路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

# 保留原导入语句
import game.map_developpement as map_items
import game.fonctions_boucle_jeu as fct_boucle

此方法仅适合临时测试,长期维护推荐使用前两种方案。

内容的提问来源于stack exchange,提问作者Jean G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:36:22