开发者

Fabfile path problem on windows

I'm trying to deploy my site using Fabric and Mercurial. In the Windows command line, running hg push works perfectly with no problems.

But when I try writing

local("hg push")

in a fabfile and running it, I get the error:

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

Googling gave me an idea that it might be a problem with the PATH variable in Python subprocesses, for example here: Why would an "command not recognized" error occur only when a window is populated?.

Can you help me out? Is the bug in Fabric or in my own 开发者_运维知识库code?

Thanks.


As Chris R mentions, we don't do a ton of Windows support as none of the core devs are Windows users; we have to rely on reports and suggestions from our more savvy Windows users.

It sounds like this could be related to this recently fixed, but not released, bug -- it will be in Fabric 1.0.2 which should be out soon. If you're feeling brave, you can test it out now via:

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

If you then do fab -V, it should say it's 1.0.2a -- if so, running your fabfile may work better. Please let us know if you do this!


It sounds like the you need to add Mercurial to the Fabric process's PATH.

Maybe something like:

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

See the docs for the path context manager. It wasn't clear if path applies to local commands, but run commands are explicitly referenced.


Neither of the fixes provided worked, but changing

local("hg push")

to

os.system("hg push")

solved the problem.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜