在 Azure Functions 中安装 Python 个模块

Install Python modules in Azure Functions

我正在学习如何使用 Azure 函数并在其中使用我的网络抓取脚本。

它使用 BeautifulSoup (bs4) 和 pymysql 模块。

当我按照这个 MS 指南在虚拟环境中本地尝试时它工作正常:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function-azure-cli?pivots=programming-language-python&tabs=cmd%2Cbrowser#run-the-function-locally

但是当我创建函数 App 并将脚本发布到它时,Azure Functions 日志给我这个错误:

Failure Exception: ModuleNotFoundError: No module named 'pymysql'

尝试导入它时一定会发生。

我真的不知道如何进行,我应该在哪里指定它需要安装的模块?

部署到Azure时需要上传已安装的模块。您可以使用 Kudu 上传它们:

https://github.com/projectkudu/kudu/wiki/Kudu-console

作为替代方案,您还可以使用 Kudu 和 运行 通过控制台进行 pip 安装:

您需要检查您是否已经生成了包含所有模块信息的requirements.txt。当您将函数部署到 azure 时,它​​会自动按 requirements.txt 安装模块。

您可以在本地通过以下命令生成requirements.txt文件中的模块信息:

pip freeze > requirements.txt

然后通过运行发布命令将函数部署到azure:

func azure functionapp publish hurypyfunapp --build remote

关于部署python功能从本地到auzre的更多信息,请参考此tutorial

顺便说一下,如果您为 python 功能使用消费计划,则 "Kudu" 对我们不可用。如果你想使用"Kudu",你需要为它创建应用服务计划而不是消费计划。

希望对你有帮助~