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

Azure Python函数应用无法识别模块,求助解决方法

Azure Python函数部署后模块找不到问题排查与解决

核心原因

Azure Functions运行时默认不会自动识别你手动创建的虚拟环境,即便SSH中激活环境并安装了依赖,函数进程仍可能使用系统默认Python环境,导致无法找到虚拟环境内的模块。

解决步骤

  1. 配置运行时环境变量

    • 在SSH中执行myenv/bin/python --version确认虚拟环境Python版本,记录虚拟环境site-packages路径(如/home/site/wwwroot/myenv/lib/python3.9/site-packages,替换3.9为你的版本)。
    • 进入Azure门户函数应用的配置→应用程序设置,添加两个环境变量:
      • PYTHONPATH:值设为上述site-packages路径
      • WEBSITE_PYTHON_PATH:值设为虚拟环境Python可执行路径,如/home/site/wwwroot/myenv/bin/python
  2. 重新安装依赖
    激活虚拟环境后,直接执行以下命令安装依赖(无需指定target,会自动安装到虚拟环境site-packages):

    source myenv/bin/activate
    pip install -r requirements.txt
    
  3. 检查文件结构与导入语句

    • 确保requirements.txt放在函数根目录/home/site/wwwroot/下,而非子函数目录。
    • 确认__init__.py中的导入语句为绝对导入(如import requests),避免错误的相对导入语法。
  4. 强制重启函数应用
    在Azure门户函数应用概览页点击重启,等待配置完全生效(不要仅在SSH中重启进程)。

  5. 验证环境有效性
    可添加测试函数打印运行时信息,确认环境配置生效:

    import sys
    import datetime
    import logging
    import pip
    import azure.functions as func
    
    def main(mytimer: func.TimerRequest) -> None:
        utc_timestamp = datetime.datetime.utcnow().replace(
            tzinfo=datetime.timezone.utc).isoformat()
    
        # 打印Python路径和已安装包
        logging.info(f"Current Python path: {sys.path}")
        installed_pkgs = [pkg.key for pkg in pip.get_installed_distributions()]
        logging.info(f"Installed packages: {installed_pkgs}")
    
        if mytimer.past_due:
            logging.info('The timer is past due!')
    
        logging.info('Python timer trigger function ran at %s', utc_timestamp)
    

    触发函数后查看日志,确认虚拟环境site-packages已在Python路径中,且目标模块存在于已安装包列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:42:05