如何在Linux消费计划中导入作为Azure函数运行的Python模块?

我在本地运行的Python代码通过导入以下库开始:

import logging
import azure.functions as func
from sendgrid import SendGridAPIClient
from datetime import datetime
import wikipedia
import urllib.request,json

这些也列在requirements.txt(

如何在Linux消费计划中导入作为Azure函数运行的Python模块?

)中。我的代码在本地运行得很好,但是一旦我上传到Azure函数,就会收到错误(screenshot): ModuleNotFoundError:没有名为“ sendgrid”的模块

我在其他地方读过,您也许可以通过Kudu在虚拟环境中安装这些模块。但是,消费计划似乎并不支持Kudu:

screenshot

如何在具有Azure功能的使用计划中与外部模块/库一起运行Python代码?

wal325 回答:如何在Linux消费计划中导入作为Azure函数运行的Python模块?

我通过单击VS Code中的“部署到功能应用程序”来对其进行测试,并成功。

然后我通过如下所示的命令部署它:

func azure functionapp publish <APP_NAME> --build remote

部署后,它也可以正常工作。

由于我不知道您选择了从本地部署到天蓝色的哪种方式,因此,如果您尝试了以上两种解决方案都失败了,我想您可以尝试以下命令:

func azure functionapp publish <APP_NAME> --build local

使用--build local选项,可从requirements.txt文件中读取项目依赖项,并从本地下载并安装这些依赖项包。项目文件和依赖项已从本地计算机部署到Azure。这导致将较大的部署程序包上载到Azure。我认为此解决方案不会丢失模块“ sendgrid”。

,

只需在require.txt中包含一个程序包名称,系统在将应用程序发布到Azure(link)时即可自动安装该程序包。

我做错了什么,我包括了这一行:

from sendgrid import SendGridAPIClient

但是未能明确导入sendgrid软件包:

import sendgrid

两者的结合解决了这个问题。

本文链接:https://www.f2er.com/2981619.html

大家都在问