どのように私はsetup.pyでMakefileを実行できますか?
質問
私は、それ自身のビルド・メカニズムを使用してを ICUをコンパイルする必要があります。そこで質問:
どのように私はsetup.py
からMakefileを実行することができますか?もちろん、私はそれがインストールされていないが、ビルドプロセス中に実行したい。
解決
私が通常使用する方法は、問題のコマンドを上書きすることです。
from distutils.command.install import install as DistutilsInstall
class MyInstall(DistutilsInstall):
def run(self):
do_pre_install_stuff()
DistutilsInstall.run(self)
do_post_install_stuff()
...
setup(..., cmdclass={'install': MyInstall}, ...)
このはdistutils
のドキュメントやソースから把握することが私にはかなり時間がかかりましたので、私はそれはあなたの痛みを節約できます願っています。
注:あなたはまた、新しいコマンドを追加するには、このcmdclass
パラメータを使用することができます。
他のヒント
あなたはPythonの拡張を構築している場合は、
あなたはのdistutils / setuptoolsの拡張機能を使用することができます。たとえばます:
from setuptools import Extension
# or:
# from distutils.extension import Extension
setup(...
ext_modules = [Extension("pkg.icu",
["icu-sqlite/icu.c"]),
]
)
そこの拡張機能を構築するための多くのオプションがあり、ドキュメントを参照してください。ます。http://ドキュメント。 python.org/distutils/setupscript.htmlする
distutilsの(distutils.core.setupのライブラリパラメータを参照してください)とCライブラリを構築することが可能ですが、Makefileで、すでにあるオプションを複製する必要があり、そうするための最も簡単な方法は、拡張することはおそらくあり他の回答で説明したようにコマンドをインストールして、サブプロセスモジュールを作る呼び出します。
所属していません StackOverflow