Python Language
setup.py
サーチ…
パラメーター
パラメータ | 使用法 |
---|---|
name | あなたの配布物の名前。 |
version | あなたの配布のバージョン文字列。 |
packages | includeするPythonパッケージのリスト(モジュールを含むディレクトリ)。これは手動で指定できますが、通常はsetuptools.find_packages() 呼び出しが代わりに使用されます。 |
py_modules | includeする最上位のPythonモジュールのリスト(つまり、単一の.py ファイル)。 |
備考
setup.pyの目的
セットアップスクリプトは、Distutilsを使用してモジュールを構築、配布、およびインストールするすべての活動の中心です。ソフトウェアを正しくインストールするのが目的です。
foo.pyというファイルに含まれているfooというモジュールを配布するだけなら、セットアップスクリプトは次のように簡単にすることができます:
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
このモジュールのソースディストリビューションを作成するには、上記のコードを含むsetup.pyというsetupスクリプトを作成し、ターミナルからこのコマンドを実行します。
python setup.py sdist
sdistは、セットアップスクリプトsetup.pyとあなたのモジュールfoo.pyを含むアーカイブファイル(Unixではtarball、WindowsではZIPファイル)を作成します。アーカイブファイルはfoo-1.0.tar.gz(または.zip)と命名され、foo-1.0ディレクトリに解凍されます。
エンドユーザがfooモジュールをインストールしたい場合は、foo-1.0.tar.gz(または.zip)をダウンロードし、解凍してfoo-1.0ディレクトリから実行するだけです
python setup.py install
Pythonパッケージにコマンドラインスクリプトを追加する
Pythonパッケージ内のコマンドラインスクリプトは一般的です。ユーザーがパッケージをインストールすると、そのパスでスクリプトを使用できるようにパッケージを編成できます。
コマンドラインスクリプトhello_world.py
を持つgreetings
パッケージがあれば。
greetings/
greetings/
__init__.py
hello_world.py
次のコマンドを実行すると、そのスクリプトを実行できます。
python greetings/greetings/hello_world.py
しかし、あなたがそうそれを実行したい場合:
hello_world.py
これを実現するには、次のようにsetup.py
setup()
にscripts
を追加します:
from setuptools import setup
setup(
name='greetings',
scripts=['hello_world.py']
)
greetingsパッケージをインストールすると、あなたのパスにhello_world.py
が追加されます。
もう1つの可能性は、エントリポイントを追加することです。
entry_points={'console_scripts': ['greetings=greetings.hello_world:main']}
このようにして、次のように実行するだけです。
greetings
setup.pyのソース管理メタデータの使用
setuptools_scm
はGitまたはMercurialのメタデータを使ってパッケージのバージョン番号を調べ、Pythonパッケージとそれに含まれるパッケージデータを見つけることができる、正式に祝福されたパッケージです。
from setuptools import setup, find_packages
setup(
setup_requires=['setuptools_scm'],
use_scm_version=True,
packages=find_packages(),
include_package_data=True,
)
この例では両方の機能を使用しています。バージョンのSCMメタデータのみを使用し、 find_packages()
呼び出しを手動パッケージリストに置き換えるか、パッケージファインダのみを使用するにはuse_scm_version=True
削除しuse_scm_version=True
。
インストールオプションの追加
前の例で見たように、このスクリプトの基本的な使い方は次のとおりです。
python setup.py install
しかし、パッケージをインストールするなどのオプションがさらにあり、コードを変更して再インストールする必要なくテストすることができます。これは以下を使用して行われます。
python setup.py develop
SphinxドキュメントのコンパイルやFortranコードの作成などの特定のアクションを実行する場合は、次のような独自のオプションを作成できます。
cmdclasses = dict()
class BuildSphinx(Command):
"""Build Sphinx documentation."""
description = 'Build Sphinx documentation'
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import sphinx
sphinx.build_main(['setup.py', '-b', 'html', './doc', './doc/_build/html'])
sphinx.build_main(['setup.py', '-b', 'man', './doc', './doc/_build/man'])
cmdclasses['build_sphinx'] = BuildSphinx
setup(
...
cmdclass=cmdclasses,
)
initialize_options
とfinalize_options
は、その名前が示すように、 run
関数の前後で実行されます。
その後、あなたはあなたの選択肢を呼び出すことができます:
python setup.py build_sphinx