Pythonモジュールをどのように整理しますか? [閉まっている]
質問
Pythonモジュールの整理に関して言えば、私のMac OS Xシステムは混乱しています。 hddのどこにでもパッケージがあり、それらを整理する特定のシステムはありません。
すべてを管理しやすくする方法
解決
私のアドバイス:
- Pythonモジュールのインストールをお読みください。
- Pythonモジュールの配布をお読みください。
- setuptools からeasy_installの使用を開始します。 setuptoolsのドキュメントをお読みください。
- 常に virtualenv を使用します。サイトパッケージディレクトリには、 setuptoolsとvirtualenvのみが含まれています。
- Ian Bickingの新しいプロジェクトをご覧ください pyinstall 。
- Ian Bicking が取り組んでいるすべてのことに従ってください。常に良さです。
- 独自のパッケージを作成する場合は、distutils / setuptoolsを使用します。
paster create
( http://pythonpaste.org を参照)を使用して初期ディレクトリを作成することを検討してくださいレイアウト。
他のヒント
PEP8およびeasy_installに加えて、virtualenvをチェックアウトする必要があります。 Virtualenvでは、複数の異なるPythonライブラリツリーを使用できます。仕事では、virtualenvをブートストラップ環境とともに使用して、開発者/実稼働環境を迅速にセットアップします。そこでは、すべてのライブラリバージョンなどが同期しています。通常、ライブラリのアップグレードを調整します。
Pythonコンポーネントにはいくつかのファミリがあります。
-
Pythonに付属しているもの。これで自動的に処理されます。
-
easy_installで取得したもの。これも、それ自体の面倒をみます。
-
TARballsまたはSVNチェックアウトなど、他の方法で取得する必要があったパッケージ。
Components
フォルダーを作成します。最初にダウンロードまたはSVNをそこに置きます。毎回。そこからインストールを行います。 -
再利用可能な、作成したパッケージ。そのフォルダー内の各プロジェクトに
Projects
フォルダーがあります。プロジェクトが非常に再利用可能なものである場合、setup.py
があり、実際にダウンロードしたかのようにインストールを実行します。これらの多くはありませんが、いくつかあります。それらのいくつかはオープンソースプロジェクトになるかもしれません。 -
作成する最終アプリケーション。これらのトップレベルアプリケーションのそれぞれを含む
Projects
にフォルダーがあります。これらは通常、大きくてとりとめのないもの(Djangoサイトなど)であり、setup.py
はありません。どうして?多くの場合、管理するサーバーインストールが数個しかない非常に複雑であり、これらのサーバーインストールはそれぞれ固有のものです。これらは一般に、PYTHONPATH
に依存してその部分を識別します。
共通のテーマに注意してください。ダウンロードしたコンポーネントか、作業中のプロジェクトのいずれかです。
また、これをクライアントから(ある程度まで)分離します。クライアントフォルダーのマスターディレクトリがあり、各フォルダーにはプロジェクトがあり、各プロジェクトには販売と配達があります。すべてのプロジェクトに販売と配達の両方があるわけではありません。
多分 PEP8 および easy_install が役に立ちますか
パッケージのすべてのソースを〜/ Packages /内に保持してから、「python2.5 setup.py install」で標準インストールを実行します。それらの上に。これは(私にとっては)/Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/に投げ込まれます。私自身のソフトウェアを開発するために、PYTHONPATHにプリプレンディングすることにより、trunk / branchs / 1.0などを切り替えるエイリアスを設定しています。 (適切にインポートする前に、これらの各ディレクトリで「setup.py build_ext --inplace」を実行する必要があります。)
Python2.6にはユーザーごとのsite-packagesディレクトリ。より便利な場合があります。
"モジュール" Pythonドキュメントページは、コード、特に" packages"の整理に関する有用なガイドです。セクション
私のアドバイスは、正当な理由がない限り、すべてをsite-packagesディレクトリに入れようとすることです。そして、easy_installを回避しようとします。これは、sys.pathをeggの場所でクラフティングする傾向があることがわかったからですが、それは私だけです。便利だと思う人もいます。
互いに競合する可能性のある異なるライブラリを使用するプログラムが多数ある場合は、 virtualenv 。
別のStackOverflowの質問からこのサイトをただ横切った: http://infinitemonkeycorps.net/docs/pph/ これはモジュールの配置だけではありませんが、配置したら、ドキュメント、テスト、配布を簡単に処理する方法を記述してください。