Я только что собрал python
с UCS-4
, все отлично работает! кроме одного: basemap
в matplotlib
. Я получаю следующую ошибку при импорте Basemap
:
ImportError: .../python2.7/site-packages/mpl_toolkits/basemap/_proj.so: неопределенный символ: PyUnicodeUCS2_DecodeUTF8
Мне известно об подобном вопросе, и ответ не помог.
Из моего исследования я думаю, что проблема связана с библиотекой geos
, которая требуется для basemap
, и, возможно, с swig
, которая используется для создания поддержки python для geos
. Однако я потерял надежду, когда прочитал следующее
В настоящее время SWIG предоставляет ограниченную поддержку Unicode и строк с расширенными символами (тип C wchar_t). Некоторые языки предоставляют карты типов для wchar_t, но имейте в виду, что они могут быть не переносимы на разные операционные системы. Это деликатная тема, которую плохо понимают многие программисты и которая не реализована единообразно на разных языках. Для тех языков сценариев, которые обеспечивают поддержку Unicode, строки Unicode часто доступны в 8-битном представлении, таком как UTF-8, которое можно сопоставить с типом char * (в этом случае интерфейс SWIG, вероятно, будет работать). Если программа, которую вы оборачиваете, использует Unicode, нет гарантии, что символы Unicode на целевом языке будут использовать одно и то же внутреннее представление (например, UCS-2 или UCS-4). Возможно, вам потребуется написать несколько специальных функций преобразования.
Кому-нибудь удалось построить matplotlib
с basemap
в python
UCS-4
?