Azure Function App部署报错:ModuleNotFoundError: No module named 'snowflake'
解决Azure Function App中
snowflake模块找不到及日志/Kudu访问问题 一、解决ModuleNotFoundError: No module named 'snowflake'
针对Bitbucket CI/CD打包Zip部署的场景,按以下步骤排查修复:
确保依赖安装到正确路径
Azure Functions要求Python依赖必须安装在函数目录下的.python_packages/lib/site-packages目录中。在Bitbucket的CI脚本里,安装依赖时指定目标路径:pip install -r requirements.txt --target .python_packages/lib/site-packages不要直接用默认的全局安装,否则打包时不会包含这些依赖。
验证Zip包包含依赖目录
打包脚本要确保把.python_packages文件夹一起打包进去。比如使用zip命令时:zip -r function_app.zip . -x "*.git*" "venv/*"排除不需要的文件,但必须包含
.python_packages,否则部署后函数运行环境里没有snowflake依赖。严格匹配Python版本
确认Bitbucket CI环境中使用的Python版本,和Azure Function App配置的版本完全一致(比如都是3.9.x)。不同版本的依赖包结构可能不兼容,导致模块无法被识别。可以在CI脚本里指定Python版本,比如:pyenv local 3.9.16检查虚拟环境干扰
如果CI流程中使用了虚拟环境,确保激活后再安装依赖,或者直接跳过虚拟环境,直接将依赖安装到.python_packages目录,避免依赖被隔离在虚拟环境中没被打包。
二、找到部署日志和Kudu控制台
部署日志
登录Azure Portal,进入你的Function App:- 左侧菜单选择「部署中心」,切换到「日志」选项卡,这里能查看Bitbucket每次部署的详细过程,包括依赖安装是否成功、打包是否完整。
- 左侧菜单选择「监控」->「日志」,可以查看函数触发时的运行时日志,进一步排查模块加载失败的具体原因。
Kudu控制台
有两种快速访问方式:- 在Function App的左侧菜单找到「高级工具」,点击页面中的「Go」按钮,直接进入Kudu界面。
- 直接访问URL:
https://<你的函数应用名称>.scm.azurewebsites.net,登录你的Azure账号即可进入。
进入Kudu后,通过「Debug console」->「CMD/PS」可以查看函数目录下的.python_packages文件夹,确认snowflake相关依赖是否存在;也能查看环境变量、运行时版本等信息,辅助排查问题。
内容的提问来源于stack exchange,提问作者Shiny Loot
相关产品推荐
相关产品推荐

