我正在Windows主机上开发一些Django应用程序。我用任务创建了fabfile。在我的一个步骤中,我执行类似的操作:
local("hg pull")
local("hg update")
它运作正常。
在其他任务中,我尝试在远程机器上执行类似的操作:
run("hg pull")
但之后我收到错误:
[XXX.XXX.XXX.XXX] run: hg pull
Exception in thread Thread-6:
Traceback (most recent call last):
File "C:\Python27\Lib\threading.py", line 808, in __bootstrap_inner
self.run()
File "C:\Users\Grzegorz\VirtualEnvs\Dummy\lib\site-packages\paramiko\agent.py", line 116, in run
self._communicate()
File "C:\Users\Grzegorz\VirtualEnvs\Dummy\lib\site-packages\paramiko\agent.py", line 122, in _communicate
import fcntl
ImportError: No module named fcntl
您有什么建议我如何从我的mercurial存储库中提取和更新更改?
答案 0 :(得分:0)
好的,现在可以了。我没有在我的虚拟环境中更改任何内容,但是从存储库设置了我的源代码的正确路径,并调用类似的东西:
run('hg pull https://usr:pwd@bitbucket.org/account/myproject')
答案 1 :(得分:0)
对我来说失败了同样的错误,直到我设置:
fabric.api.env.forward_agent = False
我最初有一个ssh:// target作为默认的repo,所以我猜这个远程ssh-agent不喜欢我的身份(但喜欢远程用户比我试图转发的更好)。
切换到https:// target,就像你所做的那样,也可以通过支持ssh身份来解决这个问题。