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

GitLab CI/CD中Mypy无法识别已安装stubs问题求助

解决GitLab CI中Mypy无法识别已安装Stubs的问题

针对你遇到的Mypy在GitLab CI环境下,即便使用--install-types仍无法找到已安装stubs的问题,可以尝试以下几种解决方案:

  • 确保Python环境与pip路径一致
    CI环境中可能存在多个Python版本或隔离环境,导致Mypy使用的Python解释器无法读取pip安装到./dev_packages的stubs。可以在运行Mypy前,显式使用对应Python的pip安装依赖:

    /usr/local/bin/python -m pip install --target ./dev_packages types-pytz types-requests
    

    同时运行Mypy时指定Python路径:

    mypy --python-path ./dev_packages --install-types --non-interactive backoffice coupons
    
  • 正确设置MYPYPATH环境变量
    避免使用相对路径,改用绝对路径设置MYPYPATH,确保Mypy能准确定位到stubs目录。在CI脚本中添加:

    export MYPYPATH=$(pwd)/dev_packages
    

    之后再执行Mypy命令。

  • 升级stubs版本以兼容Python 3.10
    报错提示stubs与Python 3.10不兼容,当前安装的types-pytz 2022.2.1.0、types-requests 2.28.11版本可能对3.10支持不足。直接安装兼容的新版本:

    pip install types-pytz>=2023.3.0 types-requests>=2.31.0.1
    
  • 提前安装所有依赖,跳过Mypy自动安装
    在CI流程的依赖安装阶段就预先安装好所需的stubs包,不依赖Mypy的--install-types自动处理,确保依赖完全就绪后再执行类型检查:

    # 安装项目依赖+stubs
    pip install -r requirements.txt types-pytz types-requests
    # 运行Mypy
    mypy backoffice coupons
    
  • 确认虚拟环境正确激活
    如果使用了虚拟环境,CI脚本中必须明确激活环境后再执行安装和检查命令,避免误用到系统Python环境:

    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt types-pytz types-requests
    mypy backoffice coupons
    

内容的提问来源于stack exchange,提问作者Mathieu A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:35:28