嵌入式Cython UCS2 UCS4问题

时间:2016-08-03 21:45:55

标签: python c++ cython ucs2 ucs-4

我有一些python代码,我试图使用cython api构造嵌入到c ++代码中。出于测试目的,我一直在努力: Example program of Cython as Python to C Converter

稍加修改的代码:

#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'

我已经看到了有关此事的其他问题,例如An UCS2-UCS4 incompatibility import failure of a Cythnized pure-Python module,以及何时运行:

import sys; sys.maxunicode

我得到1114111,这与UCS4一致。所以我想知道的是如何解决这个未定义的引用,当我的python版本似乎与那里的正确UCS一致时,而不是其他地方。

1 个答案:

答案 0 :(得分:0)

事实证明我的系统上有两个不同的python安装,而我正在连接错误的一个。