LoginSignup
23
19

More than 5 years have passed since last update.

setup.py の extras_require を活用する

Last updated at Posted at 2014-06-18

背景

python で新しいパッケージを作成する場合、setup.py に install_requires を書いて、

bash
$ python setup.py develop

で依存パッケージをインストールしますよね。

ただしこれだと、文書生成でのみ依存する sphinx や、テストでのみ依存する py.test などを管理するには不便です。

extras_require を活用する

extras_require を利用すれば、コンテキスト依存の依存パッケージを定義することができます。

setup.py
from setuptools import setup

setup(
    name='foo',
    packages=['foo'],
    install_requires=[
        "flask",
    ],
    extras_require = {
        'test': ['pytest'],
        'doc': ['sphinx'],
    },
)

pip を用いて編集モードでパッケージをインストールすれば、 setup.py develop と同じようにして、テストや文書作成用のモジュールもインストールできます。

bash
$ pip install -e .[test]

参考

bash
$ pip install SomePackage[PDF]
$ pip install SomePackage[PDF]==3.0
$ pip install -e .[PDF]==3.0  # editable project in current directory
23
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
19