2012-01-18 24 views
2

FabricをアップグレードしてからWindows上でlocal()コマンドの動作が気になりました。私fabfileの関連するビットは次のようになります。Windows上のFabricでlocal()コマンドを実行しています

env.hosts = ['server.com:22'] # One or multiple server addresses in format ip:port 
env.path = '/code' 
env.apache_path = '/apache' 
env.user = 'user' 
env.prj_name = 'user' 
env.password = 'password' 

def test(): 
    local('python manage.py test measurements temperature results', capture=False) 

は、典型的なDjangoのテストスイートをオフに解雇するために使用さfab testを実行します。それは私のMac上でやっています。 Windowsでは、コマンドを実行すると主張し、実際のテストは行わずに停止します。 env情報をコマンドに移動する(または単に削除する)と、fab testは期待どおりに動作します。これが事実でしょうか? env辞書がlocal()に影響しますか?

のWindows 7、32ビットのPython

答えて

3

local関数が呼び出されると、渡されたコマンドは実際には異なるenv変数(そのうちの一つで発見されたもので包み、前置され上のファブリック1.3.3私が質問しているのはenv.pathです)。したがって、最終的に実行されるコマンドは、渡されたコマンドとまったく同じではなく、コマンドを失敗させるような設定が存在する可能性があります。

本当に--show=debugを使用して実行されているコマンドのかについて確認して、この状況をtroubleshoutするには:

fab --show=debug <task> 

あなたが実行され、正確にコマンドを知っていたら、あなたはおそらく、問題を再現し、実際に何が起こっているのかを知ることができますフードの下。

+0

私はばかです。なぜ私はパスを単に変数の代わりにenvの一部にするのに気をつけたのか分かりません。ありがとう。 – Tom

関連する問題