作業中のパッケージがいくつかあり、setup.pyスクリプト間でコードを共有したいと思います。これを行うための良い方法はありますか、それともコードの重複が私の唯一の選択肢ですか?
質問する
486 次
1 に答える
8
通常setup.py
、個別のパッケージを配布するためのエントリ ポイントです。そのため、これらのパッケージ間でコードを共有することは困難です。
を使用するsetuptools
(または forkを使用するdistribute
)setup.py
場合は、エントリを使用してパッケージをインストールするときにインストールする必要があるパッケージを指定できます。setup_requires
残念ながら、あなたsetup.py
が最初に実行されます。行が解析されるとすぐに、setup_requires
そこにリストされている追加のパッケージがローカルにインストールされますが、これでは遅すぎる場合があります。
回避策は、エントリを定義する別のDistribution
オブジェクトを呼び出す前に作成することです。setup
setup_requires
import setuptools
setuptools.dist.Distribution(dict(setup_requires='yoursharedsetuppackage'))
# `setup_requires` is parsed and acted upon immediately; from here on out
# the yoursharedsetuppackage is installed and importable.
import yoursharedsetuppackage
setup(...)
于 2012-08-21T19:40:32.667 に答える