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

运行unittest时出现ImportError: No module named 'code.helper'求助

解决ImportError: No module named 'code.helper'的问题

嘿,我之前也踩过一模一样的坑!这个错误本质就是Python找不到你的code模块所在的目录——要么是你运行测试时的工作目录不对,要么是项目根目录没被加入Python的模块搜索路径里。下面给你几个实用的解决办法:

方法1:切换到项目根目录跑测试(最简单直接)

你现在应该是在tests目录或者其他非项目根路径下执行命令的吧?先切到myproject根目录(就是包含code、tests、docs的那个文件夹),然后再跑测试:

# 先切换到项目根目录,比如你的myproject路径是~/home/xxx/myproject
cd ~/home/xxx/myproject
# 执行测试命令
python3 -m unittest tests/test_helper.py

嫌每次写路径麻烦的话,还可以让unittest自动搜索测试文件:

python3 -m unittest discover tests

方法2:在测试文件里手动添加路径

如果不想每次都切换目录,可以在test_helper.py开头加几行代码,把项目根目录塞进Python的搜索路径里:
修改tests/test_helper.py成这样:

import sys
import os
# 拿到项目根目录的绝对路径——因为test_helper在tests文件夹,上级目录就是myproject
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, project_root)

# 后面的测试代码保持不变
import unittest
from code.helper import testFunction

class MyTest(unittest.TestCase):
    def test(self):
        self.assertEqual(testFunction(3), 4)

这样不管你在哪个目录跑这个测试文件,Python都能找到code.helper了。

方法3:把项目装成可编辑包(适合长期开发的项目)

如果这个项目你要长期维护,推荐用这个方法,一劳永逸:

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

setup(
    name="myproject",
    version="0.1",
    packages=find_packages(),
)
  1. 然后在myproject根目录执行这条命令,把项目安装成可编辑模式:
pip install -e .

之后不管你在系统哪个位置跑测试,都能直接导入code.helper,完全不用管路径的问题。

对了,再确认下你的code文件夹里确实有__init__.py(你已经提到有这个文件了,没问题)——这个文件是Python把文件夹识别成模块包的关键,可不能删哦。

内容的提问来源于stack exchange,提问作者M. Douglas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:28:45