2012-01-26 12 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()")