在 Azure Functions 中安装 Python 个模块
Install Python modules in Azure Functions
我正在学习如何使用 Azure 函数并在其中使用我的网络抓取脚本。
它使用 BeautifulSoup (bs4) 和 pymysql 模块。
当我按照这个 MS 指南在虚拟环境中本地尝试时它工作正常:
但是当我创建函数 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",你需要为它创建应用服务计划而不是消费计划。
希望对你有帮助~
我正在学习如何使用 Azure 函数并在其中使用我的网络抓取脚本。
它使用 BeautifulSoup (bs4) 和 pymysql 模块。
当我按照这个 MS 指南在虚拟环境中本地尝试时它工作正常:
但是当我创建函数 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",你需要为它创建应用服务计划而不是消费计划。
希望对你有帮助~