安装pip pyicu时出错

Eri*_*edo 21 python pip musicbrainz python-2.7

我一直在尝试在我的mac上安装musicbrainz服务器,并且我需要安装pip pyicu.我一直收到这个错误:

Collecting pyicu
Downloading PyICU-1.9.5.tar.gz (181kB)
100% |????????????????????????????????| 184kB 515kB/s 
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/tmp/pip-build-E50o2C/pyicu/setup.py", line 11, in <module>
    ICU_VERSION = subprocess.check_output(('icu-config', '--version')).strip()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 566, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/tmp/pip-build-E50o2C/pyicu/
Run Code Online (Sandbox Code Playgroud)

我尝试下载ez_setup.py并执行python ez_setup.py.我已经升级了setuptools并且还单独下载了这些.我不确定还有什么可以尝试的.请帮忙!

MUN*_*OGE 31

我在ubuntu 14.04和16.04上遇到过这个问题.要解决此问题,请安装libicu-dev然后再次尝试安装.我做到了

$sudo apt install libicu-dev
$pip install pyicu
Run Code Online (Sandbox Code Playgroud)

这可能对某人有帮助.

  • 这个实际上帮助我在我的Ubuntu盒子!谢谢@Mungai (3认同)

ppt*_*ppt 19

当我尝试安装多语言时,我在我的mac上遇到了这个问题(多语言需要pyicu).以下为我解决了这个问题.

# Install icu
brew install icu4c

# check newest version
ls /usr/local/Cellar/icu4c/

# Edit pyicu installer to work
git clone https://github.com/ovalhub/pyicu.git

# edit setup.py not to query for the version, i.e. change
# ICU_VERSION = subprocess.check_output(('icu-config', '--version')).strip()
# to whatever your version is, e.g.
# ICU_VERSION = '57.1'

# Install pyicu
env LDFLAGS=-L/usr/local/opt/icu4c/lib CPPFLAGS=-I/usr/local/opt/icu4c/include DYLD_LIBRARY_PATH=-L/usr/local/opt/icu4c/lib python setup.py build
env LDFLAGS=-L/usr/local/opt/icu4c/lib CPPFLAGS=-I/usr/local/opt/icu4c/include DYLD_LIBRARY_PATH=-L/usr/local/opt/icu4c/lib sudo python setup.py install

# Change DYLD_LIBRARY_PATH (not sure if req'd)
DYLD_LIBRARY_PATH=/usr/local/Cellar/icu4c/{version, e.g. 57.1}/:$DYLD_LIBRARY_PATH
echo $DYLD_LIBRARY_PATH

# Icu works now from python, and you can proceed with polyglot
$ python
>>> import icu
$ pip install polyglot
$ python
>>> import polyglot
Run Code Online (Sandbox Code Playgroud)


Eug*_*ash 10

在 macOS 10.14.2 上,只需将包含的目录添加icu-configPATH我就成功了:

brew install icu4c
export PATH="/usr/local/opt/icu4c/bin:$PATH"
pip install pyicu
Run Code Online (Sandbox Code Playgroud)

事实上,这是由brew info icu4c以下建议的:

==> Caveats
icu4c is keg-only, which means it was not symlinked into /usr/local,
because macOS provides libicucore.dylib (but nothing else).

If you need to have icu4c first in your PATH run:
  echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.zshrc
  echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.zshrc

For compilers to find icu4c you may need to set:
  export LDFLAGS="-L/usr/local/opt/icu4c/lib"
  export CPPFLAGS="-I/usr/local/opt/icu4c/include"

For pkg-config to find icu4c you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"
Run Code Online (Sandbox Code Playgroud)


小智 9

以下解决方案仅适用于MAC OSX-

尝试使用brew安装pyICU:

brew install icu4c
Run Code Online (Sandbox Code Playgroud)

如果它说它已经安装并且只需要链接,那么试试这个:

brew link icu4c
Run Code Online (Sandbox Code Playgroud)

这在"/ usr/local/Cellar/icu4c/..."中创建相对符号链接

  • 谢谢,对我有用的是:`brew link --force icu4c`然后安装pyICU,然后`brew unlink icu4c`以避免在构建依赖于mac的lib版本的软件时发生冲突. (2认同)

小智 8

以下解决方案在OSX上为我工作:

# Install ucu4c via Brew
brew install icu4c

# Create relative symlinks for icu4c
brew link --force icu4c

# Install pyicu via pip
# Make sure ICU_VERSION matches the one you just installed
sudo ICU_VERSION=60.2 pip install pyicu
Run Code Online (Sandbox Code Playgroud)


and*_*abs 5

对我来说,它的工作原理:

1)icu4c用brew 安装:

brew install icu4c
brew link icu4c --force
Run Code Online (Sandbox Code Playgroud)

2)检查版本:

ls /usr/local/Cellar/icu4c/
Run Code Online (Sandbox Code Playgroud)

它提示如下: 64.2

3)执行以下命令以替换上一步中的正确版本(第一行仅是整数部分,第二和第三行有小数部分):

export ICU_VERSION=64
export PYICU_INCLUDES=/usr/local/Cellar/icu4c/64.2/include
export PYICU_LFLAGS=-L/usr/local/Cellar/icu4c/64.2/lib
Run Code Online (Sandbox Code Playgroud)

4)最后为pyicu安装python软件包:

pip install pyicu --upgrade
Run Code Online (Sandbox Code Playgroud)

如果以上操作均失败(在OS X上已经发生在我身上10.15),您可能需要:

brew install pkg-config

export PYICU_CFLAGS=-std=c++11:-DPYICU_VER='"2.3.1"'
Run Code Online (Sandbox Code Playgroud)