首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python的azure函数中安装google时出错

在python的azure函数中安装google时出错
EN

Stack Overflow用户
提问于 2020-06-25 12:59:30
回答 1查看 260关注 0票数 1

我目前正在我的azure函数(Python)中安装包google-api-python-client,我将包添加到requirements.txt文件中,并将应用程序部署到Azure。但是,当我在Python中执行导入from googleapiclient.discovery import build时,当我触发函数时会出现内部错误。如果没有导入,函数将返回一个有效的响应。

有人遇到过这个问题吗?

我唯一能从蔚蓝日志中看出的是:

失败例外:(/azure-functions-host/workers/python/3.7/LINUX/X64),:(

3.11.3 Requirement.parse('protobuf>=3.12.0'),{‘google’})堆栈:文件"/azure-functions-host/workers/python/3.7/LINUX/X64/azure_functions_worker/dispatcher.py",第259行,文件"/azure-functions-host/workers/python/3.7/LINUX/X64/azure_functions_worker/utils/wrappers.py",第29行,调用返回函数(*args,**kwargs)文件"/azure-functions-host/workers/python/3.7/LINUX/X64/azure_functions_worker/loader.py",行73,在load_function mod =importlib.import_module(全称)文件的第127行中,在import_module中返回_bootstrap._gcd_import(名称:,包,级别)文件"",第1006行,在_gcd_import文件中"",第983行,在_find_and_load文件中“,第953行,在_find_and_load_unlocked文件中”,第219行,在_call_with_frames_removed文件中"",第1006行,在“"/home/site/wwwroot/HttpHeartrate/init.py",文件”中,第983行,在“_find_and_load文件”中,第967行,在“_find_and_load_unlocked文件”中,第677行,在“_load_unlocked文件”中,第728行,在“exec_module文件”中,第219行,在_call_with_frames_removed文件中,第8行,在“从googleapiclient.discovery导入构建文件"/home/site/wwwroot/.python_packages/lib/site-packages/googleapiclient/discovery.py",”中第49行,在导入"/home/site/wwwroot/.python_packages/lib/site-packages/google/api_core/init.py",文件的第23行中,在版本的=get_distribution(“google”).version文件的第482行中,在"/azure-functions-host/workers/python/3.7/LINUX/X64/pkg_resources/init.py",dist = get_provider(dist)文件第358行中,在get_provider返回working_set.find(moduleOrReq)或require(str(moduleOrReq))文件"/azure-functions-host/workers/python/3.7/LINUX/X64/pkg_resources/init.py",第901行中,在require = self.resolve(parse_requirements(requirements)) File "/azure-functions-host/workers/python/3.7/LINUX/X64/pkg_resources/init.py",第792行中,在解析中引发VersionConflict(dist,req).with_context(dependent_req) )

EN

回答 1

Stack Overflow用户

发布于 2020-06-26 01:51:03

对于这个问题,我可以给你一些建议:

1.如果您手动将包名添加到requirements.txt中,我建议您使用命令自动生成它。因为如果我们手动添加它,可能会有一些错误。您可以在VS代码中的“终端”窗口运行下面的命令。

代码语言:javascript
复制
pip freeze > requirements.txt

2.如果您使用VS代码扩展将您的函数从本地部署到azure,我建议您使用命令来部署它。因为根据我的经验,通过扩展部署是不可靠的,有时它可能会导致一些问题。因此,您可以首先在azure门户中创建python函数应用程序,然后在“终端”窗口中运行下面的命令,将其从VS代码部署到azure。

代码语言:javascript
复制
func azure functionapp publish <functionAppName> --build remote

<functionAppName>是您在蔚蓝门户上创建的函数应用程序的名称。

顺便说一句,3.,您还需要注意您的函数应用程序的结构,特别是requirements.txt。如果requirements.txt位于错误的位置,则当您将其部署到azure时,它将不会成功地安装软件包。下面是我的函数应用程序结构,我成功地安装了google-api-python-client (在本地并将它部署到azure)。

希望能帮上忙~

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62575942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档