当前位置: 首页 > 面试题库 >

让distutils在正确的位置查找numpy头文件

王高邈
2023-03-14
问题内容

在我的安装中,numpyarrayobject.h位于…/site- packages/numpy/core/include/numpy/arrayobject.h。我编写了一个使用numpy的普通Cython脚本:

cimport numpy as np

def say_hello_to(name):
    print("Hello %s!" % name)

我还有以下distutils
setup.py(从Cython用户指南中复制):

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules = [Extension("hello", ["hello.pyx"])]

setup(
  name = 'Hello world app',
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules
)

当我尝试使用构建python setup.py build_ext --inplace,Cython尝试执行以下操作:

gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd \
-fno-common -dynamic -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DMACOSX \
-I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe \
-I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 \
-c hello.c -o build/temp.macosx-10.5-i386-2.5/hello.o

可以预测,这找不到arrayobject.h。如何使distutils使用numpy包含文件的正确位置(而无需让用户定义$ CFLAGS)?


问题答案:

用途numpy.get_include()

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy as np                           # <---- New line

ext_modules = [Extension("hello", ["hello.pyx"],
                                  include_dirs=[get_numpy_include()])]   # <---- New argument

setup(
  name = 'Hello world app',
  cmdclass = {'build_ext': build_ext},       
  ext_modules = ext_modules
)


 类似资料:
  • 当我执行playbook时,这可以非常好地工作。但是,当我执行位于其他位置的playbook(因此不是直接在这个目录中)时,导入将不再工作。这样做的原因是它们的导入相对于导入的剧本所在的位置。 同样的情况也发生在使用其他模块的任务中,如复制。他们查找与剧本位置相关的文件。 有没有办法让我的任务为位于不同目录的剧本工作?

  • 问题内容: 我已经测试了一段时间的地理位置查询,到目前为止,我还没有发现任何问题。 我试图搜索给定半径内的所有城市,通常是使用城市坐标搜索城市周围的城市,但是最近我尝试在城市周围搜索,发现该城市本身未归还。 我在数据库中摘录了以下城市: 但是,当我在Saint-R茅米市内运行查询时,出现以下查询… 我得到这些结果: 搜索中缺少圣鲁茅米镇。 所以我尝试了一个修改后的查询,希望得到更好的结果: 但我得

  • 问题内容: 我没有为此使用模拟位置…实际上,上周代码运行良好。 我有一个可收集GPS数据并使用该应用程序本身生成的X,Y坐标显示Google地图链接的应用程序。我不是100%知道为什么它无法正常运行,但是当我请求该应用根据手机提供的GPS位置建立一个Google地图链接时,它告诉我距离我的位置有5-6个街区起源(当时我实际所在的位置)不完全是我想要的 已知: 我已设置适当的权限 上周所有代码正常工

  • 是否有方法返回字符在JTextField中的位置。我的意思是,如果我有一个JTextField,其中有一些值。例如,该字段包含值ABCDEFJ。用户决定将光标放在字符“C”之后,以输入新值。是否有一种方法来获得他输入新角色的位置。在本例中,将返回3。

  • 我是一个初学者程序员,我试图做一个简单的计算器,但由于某种原因,按钮似乎不能正常工作,它们要么消失,填满整个面板,要么设置在错误的位置。奇怪的是,当我悬停并在按钮上点击鼠标时,按钮就会出现。我可能会错过一些非常明显的东西,但请帮助(此外,代码不是很干净)。谢谢你! 主要的 计算器按钮 窗

  • 问题内容: 有没有一种我可以用来简单地找到文件位置的方法?我正在尝试允许用户选择一个文件并打开它,但是我必须让JFileChooser仅选择该文件并将该位置发送到另一种方法。最好的方法是什么? 问题答案: javadoc show中的示例显示了执行此操作的步骤: 那是在做什么。取得结果并将其传递给另一种方法。