首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当PyICU和icu4c正确安装时,导入或符号找不到错误

当PyICU和icu4c正确安装时,导入或符号找不到错误
EN

Stack Overflow用户
提问于 2018-09-13 08:44:30
回答 1查看 1K关注 0票数 4

我真的在和polyglotpyicuicu4c做斗争--而且我似乎不是唯一一个.

我正在用一个虚拟主机运行Mac、High塞拉利昂10.13.6和python3

以下是我所采取的步骤,主要是基于this文章:

  1. 从一个新的虚拟环境开始
  2. 用自制软件删除并重新安装icu4c (v.62.1)
  3. 检查ICU_VERSION是"62.1“
  4. ln -s /usr/local/Cellar/icu4c/62.1/bin/icu-config /usr/local/bin/icu-config
  5. 下载pyicu tar文件(2.1)
  6. 如链接文章所示,提取pyicu并编辑setup.py
  7. 构建和安装pyicu

我看到:

代码语言:javascript
复制
    Adding CXXFLAGS="-std=c++11 -I/usr/local/Cellar/icu4c/62.1/include" from /usr/local/bin/icu-config
    Adding LDFLAGS="-L/usr/local/Cellar/icu4c/62.1/lib -licui18n -licuuc -licudata" from /usr/local/bin/icu-config                    
    Installed/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyICU-2.1-py3.6-macosx-10.6-intel.egg
    ...
    Processing dependencies for PyICU==2.1
    Finished processing dependencies for PyICU==2.1

如预期的那样。

  1. pip3安装多边形

当我运行我的脚本时,我得到以下内容:

代码语言:javascript
复制
File "/Users/Chris/MindWeb/Server/lib/python3.6/site-packages/polyglot/detect/__init__.py", line 1, in <module>
from .base import Detector, Language
File "/Users/Chris/MindWeb/Server/lib/python3.6/site-packages/polyglot/detect/base.py", line 11, in <module>
from icu import Locale
ModuleNotFoundError: No module named 'icu'

这并不奇怪,因为在PATH中实际上没有一个icu模块。

如果我没有执行步骤5-7,而是执行pip3安装pyicu (它创建了icu文件夹),我将得到:

代码语言:javascript
复制
ImportError: dlopen(/Users/Chris/MindWeb/Server/lib/python3.6/site-packages/_icu.cpython-36m-darwin.so, 2): Symbol not found: __ZNK6icu_6214Transliterator12getTargetSetERNS_10UnicodeSetE
Referenced from: /Users/Chris/MindWeb/Server/lib/python3.6/site-packages/_icu.cpython-36m-darwin.so
Expected in: flat namespace
in /Users/Chris/MindWeb/Server/lib/python3.6/site-packages/_icu.cpython-36m-darwin.so

otool -L /Users/Chris/MindWeb/Server/lib/python3.6/site-packages/_icu.cpython-36m-darwin.so的输出是:

代码语言:javascript
复制
/Users/Chris/MindWeb/Server/lib/python3.6/site-packages/_icu.cpython-36m-darwin.so:
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
EN

回答 1

Stack Overflow用户

发布于 2021-11-15 14:57:50

这个关于Github的答案并不是专门针对这个错误的,而是提供了一种使用conda和Python3.6安装polyglot的简单方法(在解决了icu错误之后,我跨其他人进行了测试,因此这是很有帮助的)。

https://github.com/aboSamoor/polyglot/issues/80#issuecomment-417863726

使用conda env执行以下操作:

代码语言:javascript
复制
conda install -c conda-forge pyicu morfessor icu -y && pip install pycld2 polyglot
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52309891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档