opencc python 导致段错误

opencc python causes segmentation fault

当我从繁体中文转换为简体中文时。我使用 ubuntu 并安装 opencc 1.0.4(通过源代码)。我使用 python OpenCC 0.2 (pip install opencc)

我在python环境下试过(python3.4+)

>>> import opencc
>>> opencc.convert('乾坤一擲')
>>> opencc.convert('乾坤一掷', config='s2t.json')

全部导致段错误。

但是,如果我通过

使用系统 C 库中的 opencc
[user@hostname]$ opencc -i text.txt"

其中text.txt包含繁体字。没事。

有没有人遇到过这种情况,有什么解决办法吗?谢谢

我解决了我自己的问题。

出现这个问题的原因如下,

在我的 Ubuntu 16.04 LTS 下,有 /usr/lib/ 和 /usr/lib/x86_64-linux-gnu/

当我通过 Makefile 从源代码 (https://github.com/BYVoid/OpenCC) 安装 opencc 1.0.4 时,该库仅安装在 /usr/lib/ 中,这使得 libopencc.so 在 [=26= 下]/x86_64-linux-gnu/ 未修改。 /usr/lib/x86_64-linux-gnu/ 下的这个库对于 OpenCC 0.2 来说太旧了,仍然被 python 运行时使用。

参考:https://github.com/lepture/opencc-python/blob/master/opencc.py#L20

解决方法: Link 从 opencc 1.0.4./usr/lib/x86_64-linux-gnu/libopencc.so 到新的 libopencc.so。

我真正做了什么:将 /usr/lib/libopencc.so.1.0.0 复制到 /usr/lib/x86_64-linux-gnu/,它取代了旧的 libopencc.so .1.0.0。

如果您使用

安装了 opencc
pip install opencc 

然后先卸载它:

pip uninstall opencc

现在安装来自 https://github.com/yichen0831/opencc-python 的固定分支:

pip install opencc-python-reimplemented

注意:我与叉子的作者没有任何关系。