を複数のサブパッケージをパッケージ私が一緒にコードsomething.py
でfoobar
とalphabet
データディレクトリを持つようなディレクトリ構造を持っている:Pythonは異なるデータディレクトリと
\mylibrary
\packages
\foobar
foo.zip
bar.zip
\alphabet
abc.zip
xyz.zip
something.py
setup.py
そして目標は、ユーザーがインストールピップことができるようになっています以下のようなモジュール:
pip install mylibrary[alphabet]
そして、それが唯一のpackages/alphabet/*
データとPythonコードからのデータが含まれます。同様の現象はpip install mylibrary[foobar]
で利用できるはずです。
ユーザーが指定なしにインストールする場合:
pip install mylibrary
そして、それはpackages/
下にあるすべてのデータディレクトリが含まれます。
現在、私のようなPython3.5とsetup.py
書いてみた:ユーザーがpip install mylibrary
を行う際に、すべてのデータディレクトリとの分布を作成します
import glob
from setuptools import setup, find_packages
setup(
name = 'mylibrary',
packages = ['packages'],
package_data={'packages':glob.glob('packages' + '/**/*.txt', recursive=True)},
)
。
setup.py
を変更して、pip install mylibrary[alphabet]
のような特定のpipインストールを行うことはできますか?あなたはpip install mylibrary[alphabet]
はその後
pip install mylibrary
pip install alphabet
を意味するextras
としてalphabet
とfoobar
を追加する別々のパッケージとしてalphabet
とfoobar
をパッケージ化して公開する必要が
'setup.py'は、パッケージがプレーンなのかエクストラのなかにインストールされているかどうかを決して知りません。この情報は、インストールツール( 'pip'や' easy_install'など)でのみ使用され、セットアップスクリプトに渡されることはありません。セットアップスクリプトで定義した 'extras'は、おおまかに言えば、インストーラの追加の指示だけです。「エクストラキーワードを取得した場合は、パッケージと追加のパッケージをインストールする必要があります。 – hoefling