我需要能够处理一些具有高值的unicode字符,因此我使用选项--enable-unicode=ucs4 --prefix
(“wide-build”)重新安装了Python 2.7.10。
然后我开始收到以下错误:
...
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 wide-build一起使用?
我找不到任何关于此的文档。有没有已知的解决方法?
感谢您的帮助!
答案 0 :(得分:5)
在Python 2中没有令人满意的解决方案:UCS2和UCS4版本具有不兼容的ABI,并且需要从源构建库(因为大多数二进制鸡蛋是针对默认的UCS2 ABI构建的)。 This issue详细说明了问题以及将其纳入Python 3.3(PEP 393)的解决方案。
但是,使用UCS4版本的理由有点令人怀疑。 UCS2构建的Python完全能够与一些具有高值的unicode字符一起工作,并使用代理对来表示补充代码点。