这个 import_umath 函数是什么?

2023-12-20

当编译一堆 Cython 生成的与 Numpy 交互的 C 文件时,我收到警告:

/usr/lib/pymodules/python2.7/numpy/core/include/numpy/__ufunc_api.h:226:1: warning: ‘_import_umath’ defined but not used [-Wunused-function]

我似乎无法摆脱它。计算这可能类似于np.import_array(),它消除了相关的警告(实际上是required http://wiki.cython.org/tutorials/numpy#C-APIinitalization使用 Numpy C API),我尝试过np.import_umath()在顶层,但警告仍然存在。我该如何摆脱它?

(Cython 0.17.4,Numpy 1.6.2。)


有一个Cython 邮件列表上的线程 http://mail.python.org/pipermail//cython-devel/2012-March/002137.html对此进行了一些讨论。我相信讨论是关于 Cython 测试套件的,但我认为相同的想法可以应用于生成的文件。

本质上,该问题涉及一种黑客行为,目的是避免 C 编译器发出有关未使用函数的警告。

The 有问题的代码文件 https://github.com/cython/cython/blob/master/tests/run/numpy_common.pxi目前看起来像这样:

cdef extern from *:
   bint FALSE "0"
   void import_array()
#   void import_umath()

if FALSE:
    import_array()
#    import_umath()

过去,import_umath()部分未注释,但事实证明,这在 C++ 模式下构建时会导致错误。所以看来决定了 http://mail.python.org/pipermail//cython-devel/2012-March/002156.html编译器警告比损坏的构建要好得多。

简而言之,似乎这个特殊警告是为了 C++ 兼容性而存在的,可以安全地忽略。我想如果你really不喜欢它,如果你在 C 模式下构建,那么你可以尝试通过导入类似的代码来进行相同的修改.pxi文件并调用import_umath()在您的 Cython 代码内部。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这个 import_umath 函数是什么? 的相关文章

随机推荐