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

使用CoveragePY测试Python游戏时出现ModuleNotFoundError(找不到model模块)

解决CoveragePY运行时ModuleNotFoundError: No module named 'model'的问题

方案1:临时设置PYTHONPATH(快速解决)

在tests目录的终端中,根据操作系统执行对应命令:

  • Linux/macOS:
    PYTHONPATH=.. coverage run test_game_data.py
    
  • Windows(cmd):
    set PYTHONPATH=.. && coverage run test_game_data.py
    
  • Windows(PowerShell):
    $env:PYTHONPATH=".."; coverage run test_game_data.py
    

原理是把上层的Game目录加入Python的模块搜索路径,让Python能找到model包。

方案2:在测试文件中手动添加路径(无需每次设置环境变量)

在test_game_data.py的最顶部添加以下代码:

import sys
from pathlib import Path

# 获取当前测试文件的父目录的父目录(即Game根目录),加入模块搜索路径
sys.path.append(str(Path(__file__).parent.parent))

之后不管在哪里运行这个测试文件,Python都能定位到model所在的目录。

方案3:将项目作为可开发包安装(长期维护推荐)

  1. 在Game根目录下创建setup.py文件,内容如下:
from setuptools import setup, find_packages

setup(
    name="mygame",
    version="0.1",
    packages=find_packages(exclude=["tests"]),
)
  1. 打开终端进入Game根目录,执行:
pip install -e .

这个命令会把项目以"可编辑"模式安装到Python环境中,之后不管在哪个目录运行coverage run,Python都能直接识别model、view等包。

补充说明

你之前添加__init__.py的操作是正确的(让model成为Python包),但问题核心是Python的模块搜索路径里没有包含Game根目录,导致找不到这个包。上面的方案都是围绕把Game根目录加入搜索路径来解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:05:11