Что это за функция import_umath?

При компиляции кучи образованных Cython файлов C, которые взаимодействуют с Numpy, я получаю предупреждение:

/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() , который избавляется от соответствующего предупреждения (и на самом деле требуется для использования API-интерфейса Numpy C), я попробовал np.import_umath() на верхнем уровне, но предупреждение сохраняется. Как я могу избавиться от него?

(Cython 0.17.4, Numpy 1.6.2.)

2 Solutions collect form web for “Что это за функция import_umath?”

В списке рассылки Cython есть поток, который немного об этом говорит. Я считаю, что обсуждение касалось набора тестов Cython, но я думаю, что те же идеи могут быть применены к сгенерированным файлам.

По сути, проблема связана с хаком, который был сделан для того, чтобы избежать предупреждений компилятора C о неиспользуемых функциях.

Текущий файл кода выглядит следующим образом:

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

Раньше части import_umath() были без комментариев, но, как оказалось, это вызывало ошибки при построении в режиме C ++. Похоже, что было решено, что предупреждение компилятора намного лучше, чем сломанная сборка.

Короче говоря, похоже, что это особое предупреждение существует для совместимости с C ++ и может быть безопасно проигнорировано. Я полагаю, если вам это действительно не нравится, и если вы строите в режиме C, то вы можете попытаться сделать тот же взлом, импортировав аналогичный файл .pxi с вызовом import_umath() внутри вашего кода Cython.

Ну, что он говорит, заключается в том, что в коде есть функция, которая объявлена, но не используется, поэтому, возможно, ее устаревшая и не должна быть там. Поскольку это просто предупреждение, а не очень опасное (если вы не оставите много таких функций, сбивая код, увеличивая использование бара, двоичный размер и т. Д.), Я бы просто проигнорировал его – скорее всего, это не стоит вашего времени 😉

  • Сито эратосфенов - Простые между X и N
  • Сюжет 2-мерного массива NumPy с использованием определенных столбцов
  • Как добавить много numpy-файлов в один файл numpy в python
  • Проверьте, идентичны ли два массива numpy
  • Извлечь ежеквартальные данные за несколько квартальных периодов
  • объединение / конкатенация массивов с различными элементами
  • Вычислить ряд Фурье с тригонометрическим подходом
  • групповые значения, относящиеся к np.nan в интервалах
  • Python - лучший язык программирования в мире.