2017-02-26 5 views
0
setup.py

に私のパッケージのオプションコンポーネントを宣言:開発者はpip install filtersを行う際は、私は次のような構造と一緒にライブラリを置いてきました

filters/ 
    __init__.py 

    core/ 
    __init__.py 
    base.py 
    complex.py 
    number.py 
    string.py 

    extra/ 
    __init__.py 
    django.py 
    iso.py 

filters.coreは常にインストールする必要があります。

ただし、filters.extraはオプションです。デフォルトではインストールされません。代わりに、コアとともに余分なパッケージをインストールするために、開発者はpip install filters[extra]のようなことをする必要があります。

setuptoolsを使用してこれを行うことはできますか?

答えて

1

これは、setuptoolsのデフォルトの方法では不可能です。あなたが選択できるオプションは2つあります。

  1. 余分なもので2番目のプロジェクトを作成します。 filters-extra。これは多くのプロジェクトによって行われていることです。たとえばflask on pypi
  2. setuptoolsの"optional features"メカニズムを使用してください。これにより、常にコードがインストールされますが、追加機能の依存関係は、明示的に要求された場合にのみインストールされます。

エクストラが実際にコア機能から分離されていてコード内で相互接続されていない場合は、通常は使いやすく、文書化しやすいオプション1になります。

関連する問題