首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python编译sip,pyqt出现有关问题?

2013-11-14 
python编译sip,pyqt出现问题??????????Error: /usr/lib/python3.2/site-packages/sip.so: undefined symbo

python编译sip,pyqt出现问题??????????
Error: /usr/lib/python3.2/site-packages/sip.so: undefined symbol: PyUnicodeUCS2_Tailmatch
本人有的系统是fedora17,python版本3.2
自己编译源码会出现这种问题,网上的资料很少。
如果在软件中心下载的不会出现这种问题。但是版本不一样的。
还有在编译cx_Freeze的时候也出现了有unicode的一些错误。
感觉是python的问题 
[解决办法]
装python的头文件包了吗?
[解决办法]
这儿有一些解释(http://effbot.org/pyfaq/when-importing-module-x-why-do-i-get-undefined-symbol-pyunicodeucs2.htm):

================================================================================================
When importing module X, why do I get "undefined symbol: PyUnicodeUCS2*"?

You are using a version of Python that uses a 4-byte representation for Unicode characters, but some C extension module you are importing was compiled using a Python that uses a 2-byte representation for Unicode characters (the default).

If instead the name of the undefined symbol starts with PyUnicodeUCS4, the problem is the reverse: Python was built using 2-byte Unicode characters, and the extension module was compiled using a Python with 4-byte Unicode characters.

This can easily occur when using pre-built extension packages. RedHat Linux 7.x, in particular, provided a “python2” binary that is compiled with 4-byte Unicode. This only causes the link failure if the extension uses PyUnicode_FromUnicode or any other of the PyUnicode functions. It is also a problem if an extension uses any of the Unicode-related format specifiers for Py_BuildValue (or similar) or parameter specifications for PyArg_ParseTuple.

You can check the size of the Unicode character a Python interpreter is using by checking the value of sys.maxunicode:

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

The only way to solve this problem is to use extension modules compiled with a Python binary built using the same size for Unicode characters.

==============================================================================================

具体要自己编译那些模块需要你根据自己的系统情况决定。

热点排行