2011-04-15 13 views
0

私は職場内でパッケージをリリースしました。 〜10人で使用されています。私は非常に迅速な開発/テスト/リリースサイクル(時には2日に1回)を持っており、私の環境の障害が増え始めています。私はvirtualenvsetuptoolsのようなツールを使ってこの環境を管理したいと思っていますが、私はどこに行ってもらえません。Python環境管理(devel/release)

たとえば、開発に「テスト」データベースを使用したいが、「実際の」データベースにリリースする。線に沿って何か:

if env == "devel": 
dbpath = "/path/to/devel.db" 
if env == "release": 
dbpath = "/path/to/real.db" 

は同様に、私が開発し、リリースごとに異なるパラメータを持ついくつかの構成ファイルを持っている(今日は私は1つを変更するのを忘れ、私は電子メールのチーム全体の数十を郵送!)。

コードをきれいにして分離しておきたいので、私は上記のようなソリューションをコーディングしたくないと思います。

だから、これを管理するワークフローはどのように作成しますか?私は環境変数と__file__ステートメントに頼らないことを好むでしょう(しかし私はすべきでしょうか?)。

お詫び申し上げます。私はこれが非常に巧妙な質問ではないことを知っていますが、私は使い捨てのツールを信頼できる方法で使いたいと思っています。

+0

__file__とは何ですか? ) –

+0

@Mike Ramirez:それは間違っているとは思えませんが、フォルダ構造にも依存しているようです。 ''/sw/conf/''から ''/allconf/conf/''に変更するとどうなりますか?次に、すべての '' __file__''の計算を更新する必要があります。私はパスを与えることを好むだろうと思う。 – Escualo

+0

あなたが '__file__'計算を1つの場所に置くと、移動はただ1つの変更になります。おそらくDEBUG変数ですか? –

答えて

2

私は環境変数とファイルステートメント(多分、私がすべき?)に依存しないことを好むだろう。

する必要があります。

3つのものを使用してください。

  1. 環境変数。

  2. 設定ファイル。

  3. コマンドラインパラメータ。

他のすべてのコマンドラインプログラムと同じように。

これはプログラムではなく、インポートされたモジュールであれば、どのような種類の構成も持たないはずです。あなたのモジュールをインポートするすべてのスクリプトは、引数とパラメータとしての設定をすべて提供する必要があります

インポートされたモジュールがそれ自身の設定を持つべき状況はありません。

+0

これはコマンドラインプログラムではなく、ユーザーが独自のスクリプト内でタスクを処理するためにPythonでインポートするモジュールです(実際には多くのモジュール)。 – Escualo

+0

私はあなたのポイント(2)に従って "environment.conf"ファイルに向かって傾いています。 – Escualo

+0

@Arrieta:他のスクリプトで設定可能な場合は、設定は必要ありません。あなたのモジュールを使用するスクリプト**は引数とパラメータとして**すべての**設定を提供する必要があります。 –

関連する問題