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

Azure函数定时器触发器中导入mysql.connector报错:找不到mysql模块

解决Azure函数Python定时器触发器中MySQL模块找不到的问题

问题原因

你的本地开发环境已安装mysql-connector-python包,但Azure函数云端运行环境默认没有该依赖,触发函数时会报ModuleNotFoundError: No module named 'mysql'。另外代码存在缩进错误:import mysql.connector语句未缩进在函数timer_trigger1内部,会导致语法报错。

修复步骤

1. 修正代码缩进

将MySQL相关代码缩进至函数内部,保证语法正确:

import logging
import azure.functions as func

app = func.FunctionApp()

@app.schedule(schedule="*/30 * * * * *", arg_name="myTimer", 
 run_on_startup=True,
          use_monitor=False) 
def timer_trigger1(myTimer: func.TimerRequest) -> None:
    # 缩进修复:MySQL代码放入函数内部
    import mysql.connector

    bp1db = mysql.connector.connect(
        host="xxxx.xxxxx.com",
        user="xxxxx",
        password="xxxx01",
        db = 'boppwh'
    )
    cur1 = bp1db.cursor()
    cur1.execute("SELECT COUNT(cellid) AS free FROM cells WHERE Status = 0")
    result1 = cur1.fetchall()
    free1 = result1[0]

    logging.info('Python timer trigger function executed.')

2. 添加依赖声明文件

在函数项目根目录创建requirements.txt文件,写入所需依赖包(指定版本更稳定):

azure-functions
mysql-connector-python==8.2.0

3. 部署时安装云端依赖

  • 使用Azure Functions Core Tools部署:执行命令func azure functionapp publish <你的函数应用名>,工具会自动读取requirements.txt并在云端安装依赖。
  • 使用VS Code Azure扩展部署:部署时勾选"Install project dependencies"选项,让扩展自动处理云端依赖安装。

4. 验证Python版本一致性

本地开发的Python版本需与Azure函数配置的版本一致:
登录Azure门户,进入函数应用→配置→常规设置,查看并确认Python版本和本地开发环境相同(例如均为3.10)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:15:00