Windows上的Fabfile路径问题

时间:2011-05-02 07:41:18

标签: windows mercurial path fabric

我正在尝试使用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. 

谷歌搜索给了我一个想法,它可能是Python子进程中PATH变量的问题,例如:Why would an "command not recognized" error occur only when a window is populated?

你能救我吗? Fabric中或我自己的代码中的错误是什么?

感谢。

3 个答案:

答案 0 :(得分:1)

正如Chris R所提到的,我们没有大量的Windows支持,因为没有一个核心开发人员是Windows用户;我们必须依赖来自更精明的Windows用户的报告和建议。

听起来这可能与this recently fixed, but not released, bug有关 - 它将在Fabric 1.0.2中出现,很快就应该出来了。如果你有勇气,可以通过以下方式测试:

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

如果你做fab -V,它应该说它是1.0.2a - 如果是这样的话,运行你的fabfile可能会更好。如果你这样做,请告诉我们!

答案 1 :(得分:0)

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

可能是这样的:

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

查看path context manager的文档。目前尚不清楚path是否适用于local命令,但run命令是明确引用的。

答案 2 :(得分:-2)

所提供的修补程序均无效,但正在更改

local("hg push")

os.system("hg push")

解决了这个问题。