自分の Python スクリプト内でライブラリとして使用すると、ファブリックが機能しません。fabfile.py
私の問題を示すために、非常に短い例を作成しました。
#!/usr/bin/env python
from fabric.api import *
print("Hello")
def test():
with settings(host_string='myIp', user="myUser", password="myPassword"):
run("hostname")
if __name__ == '__main__':
test()
ランニングfab
は魔法のように機能します。
$ fab test
Hello
[myIp] run: hostname
[myIp] out: ThisHost
[myIp] out:
Done.
Disconnecting from myUser@myIp... done.
さて、fab なしで python スクリプトを実行すると、どこかで壊れているようです。
$ python fabfile.py
Hello
[myIp] run: hostname
すぐに戻ってくるので、応答を待っているようにも見えません。エラーがあるかもしれませんが、それらを出力する方法がわかりません。
vagrant 仮想マシン内でこのスクリプトを実行しています。エラーなしで実行されるので、これfab
は問題ではないと思います。
アップデート
最初のrun
. local
一方、動作します!
同僚のラップトップでスクリプトを実行しましたが、問題なく実行されました。Ubuntu 10.04 でファブリック 1.5.1 を使用して Python 2.6.5 を使用しているため、これには問題があると思います。これを適切にデバッグする方法はありますか?