Внедренный выпуск Cython UCS2 UCS4

У меня есть некоторый код Python, который я пытаюсь встроить в код C++, используя конструкцию API Cython. В целях тестирования я работал над: Примером программы на языке Python как Конвертер Python в C

С немного измененным кодом:

#foo.pyx
cdef public foo(double* x):
    x[0] = 0.0

//file.cpp
#include "Python.h"
#include "foo.h"
#include <iostream>

int main(int argc, const char * argv[])
{
    double arr[2] = {1,2};
    foo(arr);
    std::cout << arr[0] << std::endl;
    std::cout << arr[1] << std::endl;
}   

После запуска

cython foo.pyx

Я пытаюсь скомпилировать получение сообщения об ошибке:

foo.c:(.text+0x387): undefined reference to 'PyUnicodeUCS4_DecodeUTF8'

Я видел другие вопросы по этому вопросу, такие как ошибка импорта несовместимости UCS2-UCS4 модуля Cythnized pure-Python и когда я запускаю:

import sys; sys.maxunicode

Я получаю 1114111, что соответствует UCS4. Поэтому меня интересует, как мне разрешить эту неопределенную ссылку, когда моя версия на python, кажется, соответствует правильной UCS там, но не где-то еще.

1 ответ

Оказывается, у меня в системе было два разных варианта установки python, и я связывал неправильную.

Другие вопросы по тегам