Aws lambda 在带有石墨烯模块的lambda中部署函数时出错

Aws lambda 在带有石墨烯模块的lambda中部署函数时出错,aws-lambda,serverless-framework,graphene-python,Aws Lambda,Serverless Framework,Graphene Python,在AWS lambda中执行代码时,会出现此错误,我希望能够使用graqpl执行dynamodb查询并使用它们 解决方案尝试:从python虚拟环境卸载键入 发生的错误: [ERROR]AttributeError:type对象“Callable”没有属性“\u abc\u registry” 回溯(最近一次呼叫最后一次): 加载模块中的文件“/var/lang/lib/python3.7/imp.py”,第234行 返回加载源(名称、文件名、文件) 文件“/var/lang/lib/pytho

在AWS lambda中执行代码时,会出现此错误,我希望能够使用graqpl执行dynamodb查询并使用它们

解决方案尝试:从python虚拟环境卸载键入

发生的错误:

[ERROR]AttributeError:type对象“Callable”没有属性“\u abc\u registry”
回溯(最近一次呼叫最后一次):
加载模块中的文件“/var/lang/lib/python3.7/imp.py”,第234行
返回加载源(名称、文件名、文件)
文件“/var/lang/lib/python3.7/imp.py”,第171行,在load_source中
模块=_负载(规格)
文件“”,第696行,正在加载
文件“”,第677行,在\u加载\u解锁
exec_模块中第728行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“/var/task/patron4.py”,第7行,在
进口石墨烯
文件“/tmp/sls-py-req/graphene/_-init__uu.py”,第3行,在
从。类型导入(
文件“/tmp/sls py-req/graphene/types/_init__uuu.py”,第2行,在
从graphql导入ResolveInfo
文件“/tmp/sls py req/graphql/_init__uuu.py”,第27行,在
从.graphql导入graphql
File“/tmp/sls py req/graphql/graphql.py”,第1行,in
from.execution导入ExecutionResult
文件“/tmp/sls py-req/graphql/execution/_init__uuu.py”,第21行,在
从.executor导入执行,订阅
文件“/tmp/sls py req/graphql/execution/executor.py”,第14行,在
从允诺进口允诺,允诺为dict,是可以的
文件“/tmp/sls py req/promise/_init__uuuu.py”,第18行,在
承诺进口(
文件“/tmp/sls py req/promise/promise.py”,第8行,在
输入import(List,Any,Callable,Dict,Iterator,可选,#flake 8:noqa
文件“/tmp/sls py req/typing.py”,第1357行,在
类可调用(extra=collections\u abc.Callable,metaclass=CallableMeta):
文件“/tmp/sls py req/typing.py”,在此处第1005行的“新建”中输入代码__
self.\u abc\u registry=extra.\u abc\u registry
使用的代码:

类用户(模型):
类元:
表_name='2'
地区='us-east-2'
主持人https://dynamodb.us-east-2.amazonaws.com'
id=UnicodeAttribute(散列键=True,null=False)
规程=UnicodeAttribute(null=False)
类UserNode(PynamoObjectType):
类元:
模型=用户
接口=(graphene.Node,)
类查询(graphene.ObjectType):
users=graphene.List(UserNode)
def解析用户(自身、参数、上下文、信息):
返回列表(User.scan())
schema=graphene.schema(query=query)
def patrongrafico(事件、上下文):
#从数据库中获取所有TODO
尝试:
印刷品(“hola”)
查询=“”
使用者{
纪律
}
'''
结果=schema.execute(查询)
打印(结果)
例外情况除外,例如:
印刷品(ex)
返回{'statusCode':200,
'body':json.dumps({'items':[dict(result)for result in results]})

由于您将无服务器框架与无服务器python需求插件结合使用,因此您应该确保关闭超薄包装,因为这会干扰某些库。本质上,有些库假定它们是通过“real”安装的包管理器,在这种情况下,目录布局和文件看起来略有不同

几个月前,我在
jsonschema
软件包中遇到了这个问题,并在一篇《如果你感兴趣》(完全公开:这是我雇主的博客)中写到了这个问题

本质上,您的
serverless.yml
是一个
自定义
部分,您可以使用它来配置插件:

custom:
  pythonRequirements:
    slim: true
slim
true
参数有效地删除了大多数库不需要的一些信息,但有些库依赖这些信息。有关此参数的信息,请参阅软件包的

请使用此配置重试:

custom:
  pythonRequirements:
    slim: false

由于您将无服务器框架与无服务器python需求插件结合使用,因此您应该确保关闭超薄包装,因为这会干扰某些库。本质上,有些库假定它们是通过“real”安装的包管理器,在这种情况下,目录布局和文件看起来略有不同

几个月前,我在
jsonschema
软件包中遇到了这个问题,并在一篇《如果你感兴趣》(完全公开:这是我雇主的博客)中写到了这个问题

本质上,您的
serverless.yml
是一个
自定义
部分,您可以使用它来配置插件:

custom:
  pythonRequirements:
    slim: true
slim
true
参数有效地删除了大多数库不需要的一些信息,但有些库依赖这些信息。有关此参数的信息,请参阅软件包的

请使用此配置重试:

custom:
  pythonRequirements:
    slim: false

错误的解决方案是删除Python 3.7版本并实现3.6,因为Graphene不支持大于3.6的版本。

错误的解决方案是删除Python 3.7版本并实现3.6,因为Graphene不支持大于3.6的版本。

嘿,Max,请将任何错误消息复制为text into回答这个问题并向我们展示创建它的代码。好的,谢谢你的回答。你是如何打包和部署你的代码的?你使用过任何框架吗?是的,有serverles框架。你使用的是
serverless python requirements
插件吗?我花了几天时间才发现库不喜欢
slim
打包模式,它在本地也运行良好,只在AWS中抛出错误-如果有帮助,请告诉我Hey Max,请将任何错误消息以文本形式复制到问题中,并向我们展示创建它的代码。好的,谢谢你的回答。你是如何打包和部署代码的?你使用过任何框架吗?是的,使用serverles框架。你是否使用<代码>无服务器python需求插件?我花了几天的时间发现一个库不喜欢
slim
打包模式,它在本地运行得很好