ここではライセンスについては触れませんが、パッケージ ソース コードのルートに LICENSE ファイルを含めるのが一般的です。
私は通常、ターゲット システムにインストールされるのと同じ方法でパッケージを整理します。ここでは、標準のパッケージ レイアウト規則について説明します。
たとえば、パッケージが「torrent」で、「tests」や「util」などのサブパッケージがいくつかある場合、ソース ツリーは次のようになります。
ワークスペース/トレント/setup.py
ワークスペース/トレント/トレント/__init__.py
ワークスペース/トレント/トレント/foo.py
ワークスペース/トレント/トレント/bar.py
ワークスペース/トレント/トレント/...
ワークスペース/トレント/トレント/tests/__init__.py
ワークスペース/急流/急流/テスト/test.py
ワークスペース/トレント/トレント/テスト/...
ワークスペース/急流/急流/util/__init__.py
ワークスペース/急流/急流/util/helper1.py
ワークスペース/トレント/トレント/ユーティリティ/...
この 'torrent/torrent' ビットは冗長に見えますが、これはこの標準的な規則と Python インポートの動作の副作用です。
これは非常にミニマリストです(セットアップスクリプトの書き方setup.py
に関する詳細情報):
#!/usr/bin/env python
from distutils.core import setup
setup(name='torrent',
version='0.1',
description='would be nice',
packages=['torrent', 'torrent.tests', 'torrent.util']
)
ソース ディストリビューションを取得するには、次のようにします。
$ cd ワークスペース/トレント
$ ./setup.py sdist
このディストリビューション ( dist/torrent-0.1.tar.gz
) は、解凍して実行するsetup.py install
か、ツールキットeasy_install
から使用するだけで、単独で使用できsetuptools
ます。また、サポートされているバージョンの Python ごとにいくつかの「卵」を作成する必要はありません。
本当に卵が必要な場合は、に依存関係を追加する必要がありsetuptools
ます。これにより、卵を生成するsetup.py
追加のサブコマンドが導入されます。bdist_egg
しかし、卵を産む性質に加えて、素晴らしいヘルパー関数を使用してsetuptools
パッケージを列挙する必要がなくなるという別の利点があります。setup.py
find_packages
#!/usr/bin/env python
from setuptools import setup, find_packages
setup(name='torrent',
version='0.1',
description='would be nice',
packages=find_packages()
)
次に、「卵」を取得するために、次のことを行います。
$ cd ワークスペース
$ ./setup.py bdist_egg
...そして、卵ファイルが表示されます:dist/torrent-0.1-py2.6.egg
接尾辞に注意してくださいpy2.6
。これは、私のマシンに Python 2.6 があるためです。多くの人を喜ばせたい場合は、Python のメジャー リリースごとに卵を公開する必要があります。玄関先に斧や槍を持った Python 2.5 の大群がいるのは嫌ですよね?
ただし、タマゴを作成する必要はありませんsdist
。サブコマンドを使用することはできます。
更新:これは、ユーザーの観点から紹介する Python ドキュメントの別の便利なページです。Distutils