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

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

関連記事

wordpressのwp_queryでpost投稿の記事一覧を取得する

概要 みなさんこんにちはcandleです。 最近はwordpressの開発を行っており、そこで、試行錯誤したwp_queryを使った記事一覧の取得の仕方を紹介します。wordpressは少し前まで、q …

railsのcarrierwaveとremotipartで画像のアップロードを非同期にしjsonを受け取る

概要 みなさんこんにちはcandleです。今回はremotipartとcarrierwaveを使って画像のアップロードをajax化したいと思います。 railsのフォームはremote設定をするだけで …

railsのaws-sdk gemを使ってs3のフォルダ(folder)を削除する

概要 みなさんこんにちはcandleです。今回はs3にあるフォルダを丸ごとrailsのaws-sdk gemを使用して削除してみたいと思います。 実はこの方法を確立するまですごく四苦八苦しました。なん …

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

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

MAMPのSQLiteManagerを使用してsqlite3データベースの作成とデータベースファイルの設置

概要 みなさんこんにちはcandleです。今回はsqliteデータベースをMAMPを使用して作成しましょう。 PHP5.3からsqlite3のクラスが充実して、mysqlを使用しなくてもsqliteで …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ