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

在Azure Webjobs中运行Python脚本时报错如何解决?

问题根因

你直接从本地Windows Anaconda路径下复制的numpy等依赖包是适配本地Python版本、系统运行时的二进制版本,与Azure WebJobs的运行环境不兼容,是触发导入错误的核心原因。

解决步骤

1. 替换依赖包安装方式

不要直接复制本地site-packages的文件,按以下方式打包依赖:

  • 在项目根目录新建requirements.txt,写入所有用到的依赖及对应版本,示例:
numpy==1.24.3
pandas==2.0.3
# 其他依赖依次补充
  • 若WebJobs运行在Windows环境:
    先安装依赖工具:pip install wheel pipwin
    执行命令下载兼容Windows的预编译包:pip download -r requirements.txt -d ./wheels
    执行命令将依赖安装到项目本地目录:pip install --no-index --find-links=./wheels -r requirements.txt -t ./site-packages
  • 若WebJobs运行在Linux环境:
    请在WSL、Linux虚拟机或Azure Cloud Shell的对应Python版本环境下,执行命令:pip install -r requirements.txt -t ./site-packages,再将生成的site-packages目录打包上传。

2. 调整脚本模块搜索路径

在你的Python执行脚本的最开头添加以下代码,优先加载项目本地的依赖包:

import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "site-packages"))

3. 调整WebJobs运行配置

  • 确保Azure Portal中Web应用安装的Python大版本与你本地开发版本完全一致,比如本地用Python 3.9,云端也选择Python 3.9版本。
  • 若使用MKL编译版本的numpy,在Azure Web应用的「配置」-「应用程序设置」中新增环境变量:MKL_THREADING_LAYER=GNU,避免运行时冲突。
  • 若使用批处理脚本启动Python任务,需指定云端Python解释器的完整路径,示例:"D:\home\Python39\python.exe" your_script.py

4. 校验打包结构

压缩包根目录需直接包含执行脚本、site-packages目录、requirements.txt,不要嵌套额外的外层文件夹,避免WebJobs无法找到对应资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:36:03