web-dev-qa-db-ja.com

Pythonファブリックライブラリを使用してenv.hostsリストの現在の値を取得します

私はこのコードを持っています(foobarはローカルサーバーです):

env.hosts = ['foo', 'bar']

def mytask():
    print(env.hosts[0])

もちろん、これは反復ごとにfooを出力します。

ご存知かもしれませんが、Fabricはenv.hostsリストを反復処理し、次のようにそれぞれでmytask()を実行します。

fab mytask

しますか

taskfooで実行されます
taskbarで実行されます

すべての反復で現在のホストを取得する方法を探しています。

ありがとう、

25
user402250

使用する env.Host_stringenv変数の完全なリストを見つけることができます ここ

40
Marcelo Cantos

あなたはただすることができます:

env.hosts = ['foo', 'bar']

def mytask():
     print(env.Host)

Fabによって実行されるタスクに参加しているときは、そのvarが無料で設定されるためです。

27
Morgan

マルセロに感謝します。

実際にenv.Host_stringを使用する場合(たとえば、連結の目的で)、必ずタスク内にいるようにしてください。その値はNoneoutsideです。

3
user402250