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

标签 python python-3.x fabric

我正在尝试运行这个简单的 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 将它们转换为连字符,为什么要显示和示例用下划线定义方法?编写和执行这样的方法的正确方法是什么?

最佳答案

我也遇到过同样的问题。

就我而言,它恰好是 click 7.0
我回滚后click到 6.0,下划线不再被替换。

关于python - 为什么 Python Fabric 用连字符替换下划线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55978051/

相关文章:

python - 错误?无法弄清楚

python - 为什么将此函数应用于未作为参数调用的变量?

django - 用于自动设置和部署 Django 项目的好工具

python - 如何在Fabric中动态编辑env.roledefs?

python - 如何通过 onchange 方法在不同模型上创建记录?

python - 删除 sqlalchemy 中多对多辅助表关联中的所有内容

python - Python 3中True和False的不同对象大小

python - 在 Fabric 中如何从远程路径创建全局列表

python - 使用共享包部署 python 应用程序

Python 正则表达式非捕获组