Python undefined symbol: PyUnicodeUCS4_DecodeUTF8错误修复

问题描述:今日在对py文件进行编译加密的时候,导入模块时提示undefined symbol: PyUnicodeUCS4_DecodeUTF8

原因:
python默认以UCS2形式编译,但模块是以UCS4编译的

验证:新建check.py

import sys
if sys.maxunicode > 65535:
	print 'UCS4 build'
else:
	print 'UCS2 build'

python check.py即可验证是UCS2还是UCS4。问题解释参看the official FAQ

解决方法:
UCS4重新编译Python
Python-2.7.15为例,进入源码目录

./configure --enable-unicode=ucs4 --with-ssl
make && make install

注意编译后再次运行python check.py检查是否正确。如果还是UCS2,那么检查指向usr/bin/python的软连接是否正确,看看which python的结果是不是usr/bin/python。如果不是,那么需要重新建立软连接,或者检查user profile (例如~/.bashrc)里面的$PATHusr/bin前面是否有指向其他python版本的路径。

你可能感兴趣的:(Python)