窗口上的Fabfilepath问题

我正在尝试使用Fabric和Mercurial部署我的网站。 在Windows命令行中,运行hg push完全没有问题。

但是,当我尝试写作

 local("hg push") 

在fabfile中运行它,我得到的错误:

 '"hg push"' is not recognized as an internal or external command, operable program or batch file. 

谷歌search给了我一个想法,这可能是Pythonsubprocess中的PATHvariables的一个问题,例如这里: 为什么只有当一个窗口填充时,“命令不被识别”的错误发生? 。

你能帮我吗? 织物或我自己的代码中的错误?

谢谢。

正如克里斯R所提到的,我们不会做大量的Windows支持,因为没有任何核心开发者是Windows用户; 我们必须依赖更多精明的Windows用户的报告和建议。

这听起来可能与这个最近修复但未发布的bug有关 – 它将在Fabric 1.0.2中出现,应该很快出来。 如果你感觉很勇敢,现在可以通过以下方式进行测试:

 pip install -e git+git://github.com/bitprophet/fabric@1.0#egg=Fabric 

如果你接着做了fab -V ,那么应该说它是1.0.2a – 如果是这样的话,运行你的fabfile可能会更好。 请让我们知道,如果你这样做!

这听起来像你需要将Mercurial添加到Fabric进程的PATH

也许是这样的:

 fabric.context_managers.path(<path to your hg.exe>) run('hg push') 

请参阅路径上下文管理器的文档。 目前还不清楚path适用于local命令,但run命令是明确引用的。

提供的修复程序都没有工作,但正在改变

local("hg push")

 os.system("hg push") 

解决了这个问题。