1

私は布をますます頻繁に使用し、気に入っています。これまでのところ、私のファブリック スクリプトは比較的短く、アドホックである傾向があります。それは仕事を成し遂げ、それは大丈夫です。そこにあるより精巧なツールと比較して、それが私が気に入っていることです。

私は現在、スクリプトのコレクションをまとめようとしており、それらをよりアクセスしやすく、使いやすくしたいと考えています。Namespacesは進むべき道のようで、シンプルでエレガントに見えます。

現在、私にとって欠けているパズルのピースは、さまざまなファブリック タスクが必要とする (一部は共有する可能性がある)さまざまなテンプレートと構成ファイルを配置する場所と、サブモジュール間で機能またはタスクを共有する方法です。

PYTHONPATHすべてのサブモジュールからアクセスできるようにするには、システムのパスを設定または変更する必要がありますか? このようなファブリック プロジェクトを構築するための推奨構造 (またはベスト プラクティス ガイド) はありますか?

4

1 に答える 1

1

これを達成するために、私は主に通常の python インポートを使用します。

たとえば、ディレクトリ構造が次の場合:

mytoplevel/
├── __init__.py
├── mydeploymenttasks.py
└── templates
    ├── __init__.py
    └── mytemplate.mak

テンプレートは、次のようなものを使用して取得できます。

import pkg_resources
pkg_resources.resource_filename('mytoplevel.templates',mytemplate.mak)

ただし、タスクは通常の python モジュールに存在するため、パッケージの構造を使用して簡単にインポートできます。

from mytoplevel.mydeploymenttasks import installApplicationTask

パッケージをどのように構成するかについては、そのドメインによって異なります。コード内で特定のトピックが大きくなっていることがわかった場合は、それを独自のモジュールに分割します。

于 2012-05-14T11:02:47.223 に答える