Pythonモジュールの整理に関しては、私のMacOSXシステムはめちゃくちゃです。私はhddのいたるところにパッケージを置いており、それらを整理するための特別なシステムはありません。
どのようにしてすべてを管理しやすくしますか?
私のアドバイス:
paster create
( http://pythonpaste.orgを参照) を使用して初期ディレクトリ レイアウトを作成することを検討してください。Python コンポーネントにはいくつかのファミリがあります。
Pythonに付属するもの。これは自分で処理します。
easy_install で得たもの。これも、自分で処理します。
TAR ボールまたは SVN チェックアウトとして、別の方法で取得する必要があったパッケージ。フォルダを作成しComponents
ます。ダウンロードまたはSVNを最初にそこに入れます。毎回。そこからインストールを行います。
作成した再利用可能なパッケージ。そのProjects
フォルダーに各プロジェクトを含むフォルダーがあります。プロジェクトが再利用性の高いものである場合は、setup.py
ダウンロードしたかのように実際にインストールを実行します。私はこれらの多くは持っていませんが、いくつかあります。それらのいくつかは、オープン ソース プロジェクトになる可能性があります。
あなたが書く最終的なアプリケーション。Projects
これらの最上位アプリケーションのそれぞれにフォルダーがあります。これらは通常、大きくとりとめのないもの (Django サイトなど) であり、setup.py
. なんで?多くの場合、それらは非常に複雑で、管理するサーバーのインストールはわずかであり、それらのサーバーのインストールはそれぞれ固有のものです。PYTHONPATH
これらは通常、パーツを識別するために に依存しています。
共通のテーマに注目してください。ダウンロードしたコンポーネントか、作業中のプロジェクトです。
また、私はこれをクライアントから (ある程度) 分離しています。クライアント フォルダーのマスター ディレクトリがあり、各フォルダーにはプロジェクトがあり、各プロジェクトには販売と配送があります。すべてのプロジェクトに販売と配送の両方があるわけではありません。
PEP8 と easy_install に加えて、virtualenv を確認する必要があります。Virtualenv では、複数の異なる Python ライブラリ ツリーを使用できます。職場では、ブートストラップ環境で virtualenv を使用して、開発/運用環境をすばやくセットアップし、すべてのライブラリ バージョンなどを同期します。通常、ライブラリのアップグレードを調整します。
多分PEP8とeasy_installがあなたを助けることができますか?
パッケージのすべてのソースを ~/Packages/ 内に保持し、「python2.5 setup.py install」を使用して標準インストールを行います。これは(私にとっては) /Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/ に投げ込まれます。私自身のソフトウェアの開発のために、PYTHONPATH に pre-prending することで、トランク/ブランチ/1.0 などを切り替えるエイリアスを設定しています。(適切にインポートする前に、これらの各ディレクトリで「setup.py build_ext --inplace」を実行する必要があります。)
Python2.6 には、ユーザーごとの site-packages ディレクトリがあり、より便利であることに注意してください。
私のアドバイスは、あなたがそうしない正当な理由がない限り、あなたのサイトパッケージディレクトリにすべてを入れようとすることです。そして、easy_installは、卵の場所でsys.pathを台無しにする傾向があることがわかったので、避けようとしましたが、それは私だけです。一部の人々はそれが役に立つと思います。
互いに競合する可能性のある異なるライブラリを使用するプログラムがたくさんある場合は、virtualenvも確認することをお勧めします。
Just ran across this site from another StackOverflow question: http://infinitemonkeycorps.net/docs/pph/ This addresses more than just module placement, but once you place it write how you can easily handle documentation, testing, and distribution.
「モジュール」の Python ドキュメント ページは、コードの編成、特に「パッケージ」セクションに関する便利なガイドです。