joppot

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

サーバ プログラミング

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

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

Pocket

ogoier

概要

皆さんこんにちはcandleです。今回はfabricで分割したpythonファイルを読み込んでみましょう。
fabricはfabfile.pyというファイルに実行したいコマンドを書くのですが、
いくつかファイルを分割したい場合があります。
例えば、共通する設定を記述したり、メソッドをまとめたファイルを作成したり、グローバル変数を書いたファイルを作ったりします。
そのように、分たファイルを読み込む方法を紹介します。

前提

fabricのがインストールされている

SPONSORED LINK


ファイルを読み込む

まずは基本となる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

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

関連記事

memcachedサーバとruby on railsのdalliを使用してセッションを管理する

概要 みなさんこんにちはcandleです。今回はmemcachedサーバを利用してrailsのセッションを管理してみたいと思います。 一般にrailsでセッション管理をしていると、ブラウザのcooki …

ec2からvimをアンインストールして削除する

概要 みなさんこんにちはcandleです。 今回はec2のデフォルトで入っているvimを削除してみたいと思います。 emacs使いの私としてはvimは、まぁ、いらないと考えました。 もちろんviが入っ …

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

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

MysqlのSELECT FROMの結果を美しく、見やすく表示する

概要 みなさんこんにちはcandleです。今回はmysqlのデータベースに関する簡単な記事です。 データベース系の言語は最近、様々出てきましたが、私は未だにMysqlくらいしか触っていません。 私はp …

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

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

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ