为什么Python Fabric用连字符替换下划线?

问题描述 投票:2回答:1

我正在尝试运行此简单的Fabric示例,并遇到意外错误。

# fabfile.py
from fabric import task

@task
def upload_and_unpack(c):
    if c.run('test -f /home/jones/test.yml', warn=True).failed:
        c.put('test.yml', '/home/jones')

$ fab -H 'web.example.com' upload_and_unpack
No idea what 'upload_and_unpack' is!

$ fab --list
Available tasks:

  upload-and-unpack

可以看出,Fabric似乎用连字符替换了我方法中的下划线。这是我的版本:

$ fab --version
Fabric 2.4.0
Paramiko 2.4.2
Invoke 1.2.0

为什么Fabric执行此操作,如何纠正此错误?我看到here关于任务名称从下划线转换为连字符的注释,但是如果Fabric将它们转换为连字符,为什么还要显示并使用下划线定义方法的示例?编写和执行这样的方法的正确方法是什么?

python python-3.x fabric
1个回答
0
投票

我也遇到过同样的问题。就我而言,它恰好是click == 7.0将点击恢复为6.0后,下划线不再被替换。

© www.soinside.com 2019 - 2024. All rights reserved.