gpt4 book ai didi

python Fabric不允许我将输出通过管道传输到less?

转载 作者:行者123 更新时间:2023-12-01 06:08:26 25 4
gpt4 key购买 nike

我是第一次设置 Fabric,但在将 Fabric 的输出传输到 less 时遇到了麻烦。例如,如果我运行:

fabric deploy |less

(其中deploy是我的部署函数)

我从 Fabric 收到以下错误:

IOError: [Errno 22] Invalid argument

这来自远程主机上的 run() 命令。

如果我将 pty=False 添加到 run() 参数中,它就会起作用。然而,这意味着每个运行命令,我都需要添加这个参数。更不用说,我相信它对提示和输入数据有影响(显然对于这些情况我不会减少)。

我该如何解决这个问题?我应该对所有事情都执行 tty=false 吗?

最佳答案

仅供将来引用,我通过对 Operations.py 应用补丁解决了这个问题,如下所示:

http://code.fabfile.org/attachments/56/operations.patch

否则,重现此问题的代码如下:

from __future__ import with_statement
from fabric.api import *
from fabric.contrib.console import confirm
import re
import sys

def test():
run('ls')

如果您执行以下命令,就会出现问题:

fab -H myhost test |less

希望这对某人有帮助...我仍然不明白为什么这么老的错误仍然没有在最新版本的 Fabric 中得到修复。

-达斯汀

关于python Fabric不允许我将输出通过管道传输到less?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com