2012-01-26 12 views
6

numpyインクルードの正しいパスをターゲットシステム上に存在するように判断する方法について、最も簡単でエレガントな方法は何ですか?そしてそれをmakeコマンドで使用しますか?現時点では私はnumpy拡張を使用するCプログラムのメークファイル

のgccを使用しています... -Iは/ usr /含める/ python2.7/-Iは/ usr/libに/ python2.7 /のsite-packages/numpyの/コア//numpyの/

が含まれます

と私は、これらの2つを、ビルドが実行されているシステムに基づいて自動的に選択するようにしたいと思います。

python -c "import numpy; print numpy.__path__[0] + 'core/include/numpy/'" 

が、私は最初のものがわからないと私がいた場合でも、私はまだ最高からそれを使用する方法がわからないだろう。

私は2番目を得ることができたようですが、このように含めますいくつかのグーグル後(簡単な/エレガントな方法で)メイク

答えて

0

ので、これをexperimentigは私が思い付いたものです:

CFLAGS = $(shell python-config --includes) $(shell python -c "import numpy; print '-I' + numpy.__path__[0] + '/core/include/numpy/'") 

ないそれがどのように信頼性の確認が、それはすべてのマシン上で動作しているようですこれまでのところ。

は私がマルチプレクサによって提案された方法は私

3

numpy.get_include()のために動作しなかったとして、シェルの出力から変数を作成し設定するための$(シェルを...)を使用していた含まれて取得するための最も簡単な/最良の方法です。 C拡張モジュールがnumpyを使用している場合は、Extensioninclude_dirs=[numpy.get_include()]を使用する必要があります。なぜnumpy.get_include()に私が知らないドキュメントがないようです。

その後、あなたは...

CFLAGS = $(shell python-config --includes) $(shell python -c "import numpy; print '-I' + numpy.get_include()") 
をuser1056255の通り行うが、少しだけ良くすることができます
関連する問題