在我的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版本不同。
有人知道这种奇怪的阴茎肿的原因吗?
答案 0 :(得分:0)
好吧,我解决了这个问题。使用ldd命令,我发现libpython2.7.so.1.0指向错误的默认路径,而不是之前打印的路径。更正LD_LIBRARY_PATH解决了这种混乱.....