已正确安装PyICU,Mac与Ubuntu仍出现ICU导入错误
嘿,我来帮你搞定PyICU导入失败的问题!这种ImportError基本都是因为PyICU编译时依赖的ICU库版本,和系统当前运行的ICU库版本不匹配导致的,针对你用的MacOS High Sierra和Ubuntu 14.04,我分别整理了解决方案:
针对MacOS High Sierra的解决步骤
- 先卸载现有的PyICU和可能存在的ICU库(如果是用Homebrew安装的):
pip uninstall pyicu -y brew uninstall icu4c -y - 安装和报错中匹配的ICU版本(你报错里提到了
icu_61,所以选61.x系列):
你可以通过Homebrew安装指定版本的icu4c,找到对应61.x版本的历史公式安装完成后,设置环境变量让pip能找到它:export ICU_VERSION=61 export PATH="/usr/local/opt/icu4c/bin:$PATH" export LDFLAGS="-L/usr/local/opt/icu4c/lib" export CPPFLAGS="-I/usr/local/opt/icu4c/include" - 最后在你的虚拟环境
chai中重新安装PyICU:pip install pyicu
针对Ubuntu 14.04的解决步骤
Ubuntu 14.04默认的ICU版本比较旧,需要确保PyICU和系统ICU版本匹配:
- 先卸载现有PyICU:
pip uninstall pyicu -y - 方案一:使用系统默认ICU库(版本52.x)
安装系统的ICU开发包,然后安装对应版本的PyICU:sudo apt-get update && sudo apt-get install libicu-dev -y # 安装和ICU52匹配的PyICU版本,比如2.0.x系列 pip install pyicu==2.0.3 - 方案二:手动编译安装ICU61版本(和你Mac上的报错版本一致)
如果需要更高版本的ICU,可手动编译安装:- 下载ICU 61.x的源码包,解压后进入源码目录的
source文件夹 - 编译安装到系统目录:
./configure --prefix=/usr/local make -j4 sudo make install - 设置环境变量让系统和pip能找到新安装的ICU:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH - 重新安装PyICU:
pip install pyicu
- 下载ICU 61.x的源码包,解压后进入源码目录的
额外注意事项
- 确保所有操作都在你的虚拟环境(
chai)激活后执行,避免影响全局环境 - 可以通过以下命令检查ICU版本是否匹配:
- MacOS:
icuinfo - Ubuntu:
icu-config --version
- MacOS:
内容的提问来源于stack exchange,提问作者Siddharth Das
相关产品推荐
相关产品推荐

