我需要能够处理一些具有高值的 unicode 字符,所以我使用选项 --enable-unicode=ucs4 --prefix
重新安装了 Python 2.7.10(“wide-build ").
然后我开始收到以下错误:
...
from Crypto.Cipher import _ARC4
ImportError: /home/fast/usr/local/lib/python2.7/site-packages/Crypto/Cipher/_ARC4.so: undefined symbol: PyUnicodeUCS2_FromString
我意识到 undefined symbol: PyUnicodeUCS2_FromString
一定是因为新版本,所以我尝试重新安装所有新的东西(新的 Python 和新的 pip 以及新安装的库)。我仍然有同样的错误。
是否根本不可能将 Crypto
库与 Python 广泛构建一起使用?
我找不到这方面的任何文档。是否有任何已知的解决方法?
感谢您的帮助!
最佳答案
Python 2 中没有针对此问题的令人满意的解决方案:UCS2 和 UCS4 版本具有不兼容的 ABI,并且需要从源代码构建库(因为大多数二进制鸡蛋是针对默认的 UCS2 ABI 构建的)。 This issue详细说明了问题,以及将其纳入 Python 3.3 的解决方案 (PEP 393)。
不过,您使用 UCS4 构建的理由有点可疑。 Python 的 UCS2 构建完全能够“处理一些具有高值的 unicode 字符”,使用代理对来表示补充代码点。
关于python - Python 2.7 "wide-build"usc4 是否与某些库不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31644056/