我正在学习如何使用Azure函数并在其中使用Web抓取脚本。
它使用BeautifulSoup(bs4)和pymysql模块。
当按照本MS指南在虚拟环境中本地尝试时,它工作正常:
但是当我创建功能应用程序并向其发布脚本时,Azure Functions日志给了我这个错误:
Failure Exception: ModuleNotFoundError: No module named 'pymysql'
。
尝试导入时必须发生。
我真的不知道该如何进行,应该在哪里指定需要安装哪些模块?
部署到天蓝色时,您需要上载已安装的模块。您可以使用Kudu上传它们:
https://github.com/projectkudu/kudu/wiki/Kudu-console
或者,您也可以使用Kudu并使用控制台运行pip install:
您需要检查是否已经生成了requirements.txt
,其中包括模块的所有信息。将功能部署到Azure时,它将通过requirements.txt
自动安装模块。
您可以通过以下本地命令在requirements.txt
文件中生成模块信息:
pip freeze > requirements.txt
然后通过运行publish命令将功能部署到Azure上:
func azure functionapp publish hurypyfunapp --build remote
有关从本地到auzre部署python函数的更多信息,请参考此tutorial。
顺便说一句,如果您将消耗计划用于python函数,则“ Kudu”不适用于我们。如果要使用“ Kudu”,则需要为其创建应用服务计划,而不是消费计划。
希望有帮助〜