gpt4 book ai didi

python - 在 Windows 上的 Fabric 中运行 local() 命令

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:56 25 4
gpt4 key购买 nike

自升级 Fabric 以来,我注意到 Windows 上的 local() 命令出现了一些奇怪的行为(我这样做是因为 local 无法正常工作)。我的 fabfile 的相关部分如下所示:

env.hosts = ['server.com:22'] # One or multiple server addresses in format ip:port
env.path = '/code'
env.apache_path = '/apache'
env.user = 'user'
env.prj_name = 'user'
env.password = 'password'

def test():
local('python manage.py test measurements temperature results', capture=False)

运行 fab test 用于触发典型的 Django 测试套件。它仍然适用于我的 Mac。在 Windows 上,它现在声称运行该命令然后在没有实际测试的情况下停止。如果我将 env 信息移动到命令中(或只是删除它),fab test 会按预期工作。应该这样吗? env 字典会影响 local() 吗?

Windows 7 上的 Fabric 1.3.3,32 位 Python

最佳答案

当一个 local 函数被调用时,传递的命令实际上被包装并以在不同的 env 变量中找到的内容为前缀(其中之一,我看到在问题中,是 env.path)。因此,最终执行的命令并不完全是传递的命令,那里可能有一些配置导致命令失败。

要解决这种情况,请使用 --show=debug 确保真正执行的命令是什么:

fab --show=debug <task>

一旦您确切知道执行的命令,您就可以重现问题并找出幕后真正发生的事情。

关于python - 在 Windows 上的 Fabric 中运行 local() 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8916282/

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