我正在尝试使用Fabric和Mercurial部署我的网站。在Windows命令行中,运行hgpush可以完美运行,没有任何问题。但是当我尝试写作时local("hgpush")在fabfile中运行它,我得到错误:'"hgpush"'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.谷歌搜索让我知道这可能是Python子进程中的PATH变量有问题,例如:Whywouldan"commandnotrecognized"erroroccuronlywhenawindowispopulated?.
是否可以使fabfile独立?我不太喜欢运行外部工具“fab”。如果我设法获得独立的fabfile,我可以从(Eclipse/Pydev)IDE中运行该文件,轻松调试它,使用项目配置和路径等。为什么这不起作用:fromfabric.apiimportrundefhost_type():run('uname-s')if__name__=='__main__':host_type() 最佳答案 我最终找到了解决方案(而且真的很简单!)。在我的fabfile中,我添加了:fromfabric.mainimportmainif__name_
在我之前从事的项目中,我们的fabfile失控了。虽然我们项目的其余部分经过了充分测试,但我们没有为我们的fabfile编写任何测试。重构很可怕,在我们运行命令之前,我们不相信fabric命令会按我们预期的方式工作。我正在开始一个新项目,我想确保我们的fabfile从一开始就经过良好测试。服从测试山羊有一个greatarticle讨论一些可能的策略,但问题多于答案。使用fabtest是一种可能性,虽然它似乎已经死了。有没有人成功地对他们的fabfile进行了单元测试?如果是,怎么办? 最佳答案 在Docker中运行您的Fabfile
当我运行这个fabfile.py...fromfabric.apiimportenv,run,local,cddefsetenv(foo):env.hosts=['myhost']defmycmd(foo):setenv(foo)print(env.hosts)run('ls')使用此命令fabmycmd:bar。我得到这个输出...['myhost']Nohostsfound.Pleasespecify(single)hoststringforconnection:什么,什么?!我不明白?我已经设置了env.hosts并且它似乎在mycmd函数“内部”有效,但由于某些原因run命令没
是否可以设置Pycharm单步执行Fabricfabfile.py?这似乎可以通过运行/调试配置编辑器来实现,但我似乎无法正确设置。编辑器要求运行脚本,我已经尝试了fab-script.py文件,它只是为我提供了fab帮助选项。似乎我很接近,但还不完全。 最佳答案 这是我最终设置它的方式,以防它对其他人有用。与大多数类似的事情一样,一旦你知道魔法设置,就很容易了。所有这些指令都是通过PyCharm进行的,但其中一些指令可以通过其他方式完成。但是,由于这是关于在PyCharm中进行调试的,所以这就是我在说明中使用的内容。另外,我正在使