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

Python版Azure Functions本地测试报H2O模块不可用错误

问题背景

开发基于Python运行时、调用H2O模块的Azure Functions应用时出现依赖加载问题:已在requirements.txt中声明h2o==3.32.0.2依赖,依赖已成功安装到项目虚拟环境,手动激活虚拟环境运行相关代码无异常,但本地测试Azure Functions时触发H2O模块不可用报错。
当前运行环境信息:

  • 操作系统:Windows 10
  • Python版本:3.9
复现材料

最小复现代码

import datetime
import logging

import h2o
import azure.functions as func

def main(mytimer: func.TimerRequest) -> None:
    utc_timestamp = datetime.datetime.utcnow().replace(
        tzinfo=datetime.timezone.utc).isoformat()
    if mytimer.past_due:
        logging.info('The timer is past due!')
    logging.info('Python timer trigger function ran at %s', utc_timestamp)

requirements.txt配置

h2o==3.32.0.2

报错截图

本地运行H2O模块缺失报错

根因说明
  1. Windows环境下Azure Functions Core Tools启动时,不会自动继承当前终端激活的虚拟环境的包搜索路径,哪怕手动激活了虚拟环境,函数工作进程默认会用全局Python解释器加载依赖,找不到装在虚拟环境里的h2o包。
  2. h2o==3.32.0.2发布时间早于Python 3.9正式发布时间,该版本未做Python 3.9适配,在3.9版本下存在包路径识别异常。
修复方案

按顺序执行以下操作即可解决问题:

  • 强制指定Azure Functions使用虚拟环境内的Python解释器
    在项目根目录下的local.settings.json文件中添加配置,明确指定Python依赖搜索路径:
    {
      "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "python",
        "PYTHONPATH": ".venv/Lib/site-packages"
      }
    }
    
    配置后启动函数时,工作进程会自动从虚拟环境的site-packages目录加载依赖。
  • 升级H2O到适配Python 3.9的版本
    将requirements.txt中的h2o版本修改为h2o>=3.34.0.1,该版本是首个正式适配Python 3.9的稳定版,修改后在激活的虚拟环境中执行pip install -r requirements.txt --upgrade完成升级。
  • 清理本地运行缓存后重启
    先删除项目根目录下的.python_packages缓存文件夹,再执行func start重新启动函数即可正常加载h2o模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:51:18