Не удается импортировать статистические модели в RHEL с неопределенным символом: PyUnicodeUCS4_DecodeUTF8 - PullRequest
0 голосов
/ 07 ноября 2018

Я установил statsmodels и все его зависимости от RHEL. При импорте statsmodels он дает мне:

(, ImportError ( '/ дом / Библиотека / python2.7 / сайт-пакеты / statsmodels / TSA / kalmanf / kalman_loglike.so: неопределенный символ: PyUnicodeUCS4_DecodeUTF8 ',))

Глядя на другие страницы, я перекомпилировал Python 2.7.15 (который у меня есть), с UCS-4 в качестве представления Unicode. Но потом NumPy жалуется, что ищет UCS-2! Итак, statsmodels нуждается в UCS-4, но его зависимость, numpy, нуждается в UCS-2.

Какие-нибудь предложения, чтобы выйти из этого? Я на самом деле борюсь с прошлой 1 недели на этом. Похоже, ошибка в statsmodels, но тогда она отлично работает с Anaconda на Windows. Таким образом, он появляется только в машине RHEL.

1 Ответ

0 голосов
/ 22 февраля 2019

После обновления pyconfig-64.h в python-dev включите, как показано ниже:

/* Define as the size of the unicode type. */
//#define Py_UNICODE_SIZE 4
#define Py_UNICODE_SIZE 2

Я обнаружил, что unicodeobject.h:

/* FIXME: MvL's new implementation assumes that Py_UNICODE_SIZE is
   properly set, but the default rules below doesn't set it.  I'll
   sort this out some other day -- fredrik@pythonware.com */

После выравнивания этих файлов в python-dev для отражения UCS2, перекомпиляции python для UCS2 и обновления около 17 различных файлов .c в statsmodels, например:

//  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4) (PyUnicode_AS_UNICODE(u)[i]))
#define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS2)(PyUnicode_AS_UNICODE(u)[i]))

Мне наконец-то удалось успешно импортировать statsmodels и numpy.

Я думаю, это нужно исправить в python, а также в statsmodels.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...