Python unicode,UCS4构建或UCS2构建

时间:2018-06-29 03:44:13

标签: python c++

在我的Linux机器上,直接执行python命令,这表明我的Python是UCS4构建。

Python 2.7.3 (default, Jan  8 2018, 17:43:28)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> if sys.maxunicode > 65535:
...     print 'UCS4 build'
... else:
...     print 'UCS2 build'
...
UCS4 build

但是,当我使用

在C ++程序中调用python时
Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("if sys.maxunicode > 65535:\n    print 'UCS4 build'\nelse:\n    print 'UCS2 build'");

打印“ UCS2 build”。 来自c ++调用的python的其他信息是:

  

平台:Linux-2.6.32_1-19-0-0-x86_64-with-centos-6.3-Final

     

('Python','2.7.5(默认,2016年4月13日,14:25:24)

     

[GCC 4.4.6 20120305(Red Hat 4.4.6-4)]')

     

('Python','****** / venv')

我仔细检查了python可执行文件路径。它们来自同一路径,但是python版本和gcc版本不同。

有人知道这种奇怪的阴茎肿的原因吗?

1 个答案:

答案 0 :(得分:0)

好吧,我解决了这个问题。使用ldd命令,我发现libpython2.7.so.1.0指向错误的默认路径,而不是之前打印的路径。更正LD_LIBRARY_PATH解决了这种混乱.....