サーチ…


パラメーター

パラメータ使用法
name あなたの配布物の名前。
version あなたの配布のバージョン文字列。
packages includeするPythonパッケージのリスト(モジュールを含むディレクトリ)。これは手動で指定できますが、通常はsetuptools.find_packages()呼び出しが代わりに使用されます。
py_modules includeする最上位のPythonモジュールのリスト(つまり、単一の.pyファイル)。

備考

Pythonパッケージングの詳細については、以下を参照してください。

前書き

公式パッケージを書くには、 パッケージングのユーザーガイドがあります。

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_optionsfinalize_optionsは、その名前が示すように、 run関数の前後で実行されます。

その後、あなたはあなたの選択肢を呼び出すことができます:

python setup.py build_sphinx


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow