setup.py,setup.cfg, extra_require (not using pip)

e.g. colander
setup.py

##... snip

testing_extras = ['nose', 'coverage']
docs_extras = ['Sphinx']

setup(name='colander',
      version='0.9.8',
## ... snip
      install_requires = requires,
      test_suite="colander",
      extras_require = {
          'testing':testing_extras,
          'docs':docs_extras,
          },
      )

setup.cfg

## ... snip
[aliases]
dev = develop easy_install colander[testing]
docs = develop easy_install colander[docs]
## .. snip

how to use

$ python setup.py dev # install package include testing requirements
$ python setup.py docs # instapp package for documantation

githubにパッケージ挙げる時のディレクトリ構成

悩まなくても良いようにメモ。

作りたいパッケージ(パッケージ名: foo)

ファイル構成(置き場所)

.
├── README.txt
├── docs
├── foo
│   ├── __init__.py
│   ├── locale
│   └── tests
├── setup.cfg
├── setup.py
└── tox.ini

シンプルなもの

.
├── README.txt
├── foo
│   ├── __init__.py
│   └── tests
├── setup.cfg
└── setup.py
  • 普通にsetup.pyを書く
  • setup.pyにextra_requiersを書く(docs,testing)
  • setup.cfgにextra_requiresのためのaliasを書く