如何在Windows 7上获取fabric执行的输出(fab.exe)?

1 投票
1 回答
2075 浏览
提问于 2025-04-16 10:29

我想用Fabric这个工具来部署项目,但在学习教程的时候遇到了一些问题。我觉得我已经正确安装了它(我用的是easy-install)。

我在fabfile.py里定义了一个示例函数:

def hello():
    print("Hello world!")

然后我打开一个命令窗口,运行

C:\dev>fab hello

结果又打开了一个新的命令窗口,但几乎立刻就关闭了,我根本不知道里面说了什么。

我试着用/K选项打开命令窗口

c:\dev>cmd /K "fab hello"

还尝试把输出重定向到一个文件里,但那个文件是空的。

c:\dev>fab hello >> output.txt

如果有任何提示、建议或评论,我都非常感激。

1 个回答

2

DiggyF的建议对我控制cmd命令行非常有效。

fab hello > output.txt 2>&1

现在我可以把命令行执行的结果直接保存到一个文件里。

输出结果是:ImportError: No module named win32api。这让我花了很长时间去查找问题,结果这个问题应该另开一个问题来讨论。

在Windows 7上让fabric运行的解决办法是:

使用命令:easy_install fabric

手动安装pycrypto-2.0.1.win-amd64-py2.6.exe,下载链接在这里: http://www.voidspace.org.uk/python/modules.shtml

手动安装pywin32-214.win-amd64-py2.6.exe,下载链接在这里: http://sourceforge.net/projects/pywin32/files/

为了防止命令行在执行完后立刻关闭,你可以使用:

from fabric.contrib.console import confirm
def hello():
    ...
    confirm("Would you like to exit?")

撰写回答