繁体   English   中英

在python模块对流层中,我得到一个错误“ AttributeError:'模块'对象没有属性'EBSBlockDeviceMapping'”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM