Fabric: AttributeError: 'str' 对象在使用自定义 connect_kwargs 和 key_filename 选项时没有属性 'extend'

创建于 2019-08-31  ·  6评论  ·  资料来源: fabric/fabric

使用带有key_filename选项的自定义connect_kwargs时,如下所示:

    config = fabric.config.Config()
    print("Connecting with ssh/config")
    with fabric.Connection(
        host=instancePrivateIp,
        user='ec2-user',
        config=config,
        connect_kwargs={
            "key_filename": keyFileName,
        }) as c_instance:

我得到一个AttributeError

  File "/home/dumontj/Projects/ami-builder/ami_builder/customization.py", line 26, in do_bash_customization
    "key_filename": keyFileName,
  File "/home/dumontj/.local/share/virtualenvs/ami-builder-jbdgQc96/lib/python3.7/site-packages/fabric/connection.py", line 450, in __init__
    self.connect_kwargs = self.resolve_connect_kwargs(connect_kwargs)
  File "/home/dumontj/.local/share/virtualenvs/ami-builder-jbdgQc96/lib/python3.7/site-packages/fabric/connection.py", line 490, in resolve_connect_kwargs
    connect_kwargs["key_filename"].extend(
AttributeError: 'str' object has no attribute 'extend'

文档指定key_filename应该作为字符串给出,但我发现如果你真的给它一个列表它可以工作:

    with fabric.Connection(
        host=instancePrivateIp,
        user='ec2-user',
        config=config,
        connect_kwargs={
            "key_filename": [keyFileName,],
        }) as c_instance:

如果这是想要的语法,我可以通过 PR 更新文档(参见 https://github.com/fabric/fabric/blob/2.0/fabric/connection.py#L234)。 否则,我可以更改fabric/connection.py以检查是否已经存在条目,然后在必要时将其转换为列表。

最有用的评论

我在 2.5 上看到了同样的问题。 但是,使用列表是有效的。

所有6条评论

我在 2.5 上看到了同样的问题。 但是,使用列表是有效的。

同样的问题。 看起来这对我来说可能是一个愚蠢的错误,所以固定到 2.4.0 直到我们从上游听到更多。

当主机设置为 DNS 名称时,我遇到了同样的问题。 设置为 IP 时,不会发生异常。
例如:

{'host': '127.0.0.1', 'user': 'MyUser', 'connect_kwargs': {'key_filename': '/Users/MyUser/.ssh/MyPem.pem'}} # <- Works
{'host': 'some.dns.name', 'user': 'MyUser', 'connect_kwargs': {'key_filename': '/Users/MyUser/.ssh/MyPem.pem'}} # <- Doesn't work

face_caches[self.face_img_paths[i].stem] = 人脸
AttributeError: 'str' 对象没有属性 'stem'
我收到了这个错误。 谁能建议我一个解决方案

其他人在 2019 年 9 月提出了 PR 以更改文档,但尚未合并(2020 年 2 月):#2014

这也发生在我身上......而且,我认为能够设置是否只想使用提供的 key_filename 进行连接,而不是使用 ssh_config 信息,这一点很重要。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

yuvadm picture yuvadm  ·  5评论

amezin picture amezin  ·  5评论

omzev picture omzev  ·  6评论

bitprophet picture bitprophet  ·  6评论

Grazfather picture Grazfather  ·  4评论