joppot

コピペで絶対動く。説明を妥協しない

サーバ プログラミング

pythonのfabricでファイルを分割しfabfileに読み込む方法

投稿日:2014年11月2日更新日:

Pocket

ogoier

概要

皆さんこんにちは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 *

ネットワークの設定は各自の環境に合わせておいてください。
fabricdeffff

次に、別のpythonファイルを用意します。
例えば、共通のグローバル変数を書くファイルを作ってみましょう。

touch global_value.py

そのファイルにグローバル変数を作ってみましょう。

# -*- encoding:utf-8 -*-

HELLO_FILE = "~/hello.txt"

batako

保存しましょう。

fabfile.pyにglobal_value.pyを読み込みます。

私はpythonネイティブプログラマーじゃ無いので、この方法が本当にベストなのか分からないのですが、一応動くのでこれでやっています。
fabfile.pyに下のコードを加えます。

execfile("./global_value.py")

fabricinportfile

先ほどのHELLO_FILEグローバル変数が使えるか試してみましょう。

fabfile.pyに下の内容を加えます。

def show_global_value():
    print(HELLO_FILE)

showglobalvaluefunc

printしているのは先ほど、global_value.pyで書いたグローバル変数です。
保存しましょう。

実行して確認する

show_global_valueを実行します。

fab -l
fab show_global_value

fabricglobalresult

外部ファイルを読み込んだ先のグローバル変数を参照できていますね。

まとめ

応用としては、冒頭にも書いた様に、sshやmysqlの設定を外部ファイルにしたり、グローバル変数別ファイルにしたり、共通して使う関数を別ファイルにしたりするとよいでしょう。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-サーバ, プログラミング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

railsのroutesでhttpのGETやPOSTを指定してルーティングを表示する

概要 みんさんこんにちはcandleです。今回は少し頭をひねれば分かる事ですが、少し迷ったので、記事にまとめました。 railsですごいwebアプリケーションを作っていると、ルーティングが複雑きわまり …

wysiwygエディタのSquire editorのサンプルを作成する

概要 みなさんこんにちはcandleです。 今回オープンソースのsquireエディタをhtmlに手動で導入したいと思います。 squireはオープンソースの便利なwysiwygエディタです。 カスタマ …

ruby on railsで出力されるlog(ログ)のフォーマットを変更する

概要 みなさんこんにちはcandleです。今回はrailsのログに関する記事です。railsは決まった記述でログを出力します。 webアプリケーションを実行中におかしな挙動が合った場合はこのログをもと …

gemspecのsummary項目とdescription項目の違いに付いて

概要 みなさんこんにちはcandleです。 gemを自作していたら、gemspecのところでsummaryとdescriptionの違いが分からなかったので、 調べたら、公式ページに書いてあったので、 …

wordpressのget_categoriesでサブカテゴリーを含まないカテゴリー一覧を取得する

概要 みなさんこんにちはcandleです。今回はカテゴリー一覧にサブカテゴリーを含まない取得の仕方を紹介します。 サブカテゴリーを使用しているサイトの場合、場合によってはサブカテゴリーとトップの階層の …

  • English
  • 日本語

プロフィール


ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー

スポンサードリンク

アーカイブ