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

已放置__init__.py仍遇ModuleNotFoundError:无法找到cdk_code模块

模块导入错误解决方案:ModuleNotFoundError: No module named 'cdk_code'

我已在项目对应位置放置了__init__.py文件,但运行tests/unit/test_cicd_in_aws_stack.py时,执行from cdk_code.cicd_in_aws_stack import CicdInAwsStack语句仍报错ModuleNotFoundError: No module named 'cdk_code'。项目结构如下:

.
├── README.md
├── app.py
├── cdk.json
├── cdk_code
│   ├── __init__.py
│   ├── cicd_in_aws_stack.py <--- 从这里导入CicdInAwsStack类
│   ├── lambda_stack.py
│   └── stage.py
├── requirements-dev.txt
├── requirements.txt
├── source.bat
└── tests
    ├── __init__.py
    └── unit
        ├── __init__.py
        └── test_cicd_in_aws_stack.py <--- 在这里导入CicdInAwsStack类

解决方法

  • 临时添加项目根目录到Python路径
    在测试文件的最顶部添加代码,手动将项目根目录加入Python的搜索路径:

    import sys
    from pathlib import Path
    
    # 获取项目根目录(当前测试文件的上上级目录)
    project_root = Path(__file__).parent.parent.parent
    sys.path.append(str(project_root))
    
    # 之后再执行导入语句
    from cdk_code.cicd_in_aws_stack import CicdInAwsStack
    
  • 安装项目为可编辑模式(推荐长期开发)
    在项目根目录执行以下命令,将当前项目以可编辑模式安装到Python环境,让Python自动识别项目模块:

    pip install -e .
    

    执行后无需修改测试脚本,直接运行测试即可。

  • 确保在项目根目录运行测试命令
    运行测试时必须处于项目根目录,比如执行:

    python -m pytest tests/unit/test_cicd_in_aws_stack.py -v
    

    若在tests/unit目录下直接运行脚本,Python会以该目录为搜索根,无法找到上层的cdk_code模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:52:35