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

新建Python项目/tests目录运行pytest出现ModuleNotFoundError如何解决

问题解决方案

核心报错原因

你遇到的ModuleNotFoundError是因为Python运行pytest时,没有将你的项目根目录(即crmpicco包所在的父目录,对应你给出的路径为/private/var/www/crmpicco/)加入模块搜索路径,因此无法识别crmpicco这个包。你新增/删除tests目录下的__init__.py无法解决这个问题,因为问题出在模块搜索路径的配置上。

可用解决方案

你可以选择以下任意一种方案解决导入问题:

  • 方案1:新增pytest配置文件
    在项目根目录下新建名为pytest.ini的配置文件,写入如下内容:
    [pytest]
    pythonpath = .
    
    该配置会让pytest运行时自动将当前根目录加入Python模块搜索路径,即可正常导入crmpicco包。
  • 方案2:将项目安装为可编辑模式
    如果你项目根目录下有pyproject.toml或者setup.py包管理文件,可以直接在根目录运行如下命令:
    pip install -e .
    
    该命令会将你的项目注册到当前Python环境的包索引中,无论在哪个路径下运行都可以正常导入crmpicco模块。
  • 方案3:临时设置环境变量
    运行pytest前先执行环境变量配置命令,将项目根目录加入搜索路径:
    # Mac/Linux 终端执行
    export PYTHONPATH=/private/var/www/crmpicco/
    
    配置完成后再运行pytest即可正常导入。

额外注意:测试代码语法问题

你当前的测试代码存在参数错误,运行时会触发TypeError,需要做如下修改:
pytest的独立测试函数不需要加self参数,同时Legacy类的is_complete方法没有入参,不需要传入self,修改后的测试代码如下:

from crmpicco.subtasks.legacy import Legacy

def test_is_complete():
    legacy = Legacy()
    assert legacy.is_complete() == True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:24:03