![](/img/trans.png)
[英]Why I am getting this error(AttributeError: 'module' object has no attribute 'openssl_md_meth_names')?
[英]In python module troposphere I am getting an error “AttributeError: 'module' object has no attribute 'EBSBlockDeviceMapping'”
我正在遵循已编写的其他一些代码的示例。 有问题的代码如下所示:
if virtualname == "ebs":
if deviceSize == None:
deviceSize = 8
if delOnTerminate == None or delOnTerminate == "true":
DOT = "true"
else:
DOT = "false"
lc.BlockDeviceMappings.append(ec2.EBSBlockDeviceMapping(
DeviceName=blockname,
Ebs=ec2.EBSBlockDevice(VolumeSize=deviceSize,
DeleteOnTermination=DOT)))
else:
lc.BlockDeviceMappings.append(ec2.BlockDeviceMapping(DeviceName=blockname,
VirtualName=virtualname))
该AttributeError
,当你有一个类(在这种情况下,一个模块),并指的是不存在的属性才会发生。 就像NameError
只是对象的属性。
您已将import ... as ec2
类的模块import ... as ec2
。 标记为...
的模块没有名为EBSBlockDeviceMapping
的函数,因此当您在代码中调用该模块时,它会给出AttributeError
。
这是有效的方法:
lc.BlockDeviceMappings.append(ec2.BlockDeviceMapping(
DeviceName = blockname,
Ebs=ec2.EBSBlockDevice(
VolumeSize = deviceSize,
DeleteOnTermination = DOT
)
)
)
正如Reticality指出的那样,EBSBlockDeviceMapping不存在。 相反,我只需要使用BlockDeviceMapping,而ec2.EBSBlockDevice负责EBS设置。
哦,是的,DOT的参数必须是布尔值而不是字符串,因此请使用'DOT = False'和'DOT = True'而不是'DOT =“ false”'和'DOT =“ true”'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.