2012-01-26 27 views
6

請問如何確定numpy包含的正確路徑的最簡單/最優雅的方式是什麼,因爲它們存在於目標系統上?然後通過make命令使用它?目前我使用使用numpy擴展的C程序的Makefile文件

GCC ... -I/usr/include目錄/ python2.7/-I/usr/lib目錄/ python2.7 /站點包/ numpy的/核心/包括/ numpy的/

我希望這兩個包括自動選擇基於系統上的構建是在perfromed上。

好像我能拿到第二個包括類似這樣:

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

,但我不知道的第一個,我就算是,我仍然不能確定如何最好地使用它生成文件(在一個簡單的/優雅的方式)

回答

0

所以經過一些谷歌上搜索和experimentig這是我想出了:

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

不知道它有多可靠,但它似乎是工作在所有的機器至今。

我不得不使用$(殼...),用於建立從外殼輸出使變量由MUX提出的方法對我來說

3

numpy.get_include()沒有工作是獲得包括最簡單的/最佳途徑。如果您的C擴展模塊使用numpy然後在Extension您必須使用include_dirs=[numpy.get_include()]。爲什麼numpy.get_include()似乎沒有任何我不知道的文檔。

然後你可以做user1056255建議,而只是一個好一點......

CFLAGS = $(shell python-config --includes) $(shell python -c "import numpy; print '-I' + numpy.get_include()")