概要
皆さんこんにちはcandleです。今回はfabricで分割したpythonファイルを読み込んでみましょう。
fabricはfabfile.pyというファイルに実行したいコマンドを書くのですが、
いくつかファイルを分割したい場合があります。
例えば、共通する設定を記述したり、メソッドをまとめたファイルを作成したり、グローバル変数を書いたファイルを作ったりします。
そのように、分たファイルを読み込む方法を紹介します。
前提
fabricのがインストールされている
ファイルを読み込む
まずは基本となるfabfile.pyを用意します。
touch fabfile.py
fabfile.pyにはfabricAPIのインポートの設定を書いておきます。
# -*- encoding:utf-8 -*- from fabric.api import * from fabric.colors import *
次に、別のpythonファイルを用意します。
例えば、共通のグローバル変数を書くファイルを作ってみましょう。
touch global_value.py
そのファイルにグローバル変数を作ってみましょう。
# -*- encoding:utf-8 -*- HELLO_FILE = "~/hello.txt"
保存しましょう。
fabfile.pyにglobal_value.pyを読み込みます。
私はpythonネイティブプログラマーじゃ無いので、この方法が本当にベストなのか分からないのですが、一応動くのでこれでやっています。
fabfile.pyに下のコードを加えます。
execfile("./global_value.py")
先ほどのHELLO_FILEグローバル変数が使えるか試してみましょう。
fabfile.pyに下の内容を加えます。
def show_global_value(): print(HELLO_FILE)
printしているのは先ほど、global_value.pyで書いたグローバル変数です。
保存しましょう。
実行して確認する
show_global_valueを実行します。
fab -l fab show_global_value
外部ファイルを読み込んだ先のグローバル変数を参照できていますね。
まとめ
応用としては、冒頭にも書いた様に、sshやmysqlの設定を外部ファイルにしたり、グローバル変数別ファイルにしたり、共通して使う関数を別ファイルにしたりするとよいでしょう。