Python 安装pip-pyicu时出错

Python 安装pip-pyicu时出错,python,python-2.7,pip,musicbrainz,Python,Python 2.7,Pip,Musicbrainz,我一直在尝试在我的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 c

我一直在尝试在我的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/

下载PyICU-1.9.5.tar.gz(181kB)
100% |████████████████████████████████| 184kB 515kB/s
从命令python setup.py egg_info完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/private/tmp/pip-build-E50o2C/pyicu/setup.py”,第11行,在
ICU_VERSION=子流程。检查_输出(('ICU-config','--VERSION')).strip()
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第566行,在check_输出中
进程=Popen(stdout=PIPE,*popenargs,**kwargs)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第710行,在__
错误读取,错误写入)
文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第1335行,在执行子进程中
引发子对象异常
OSError:[Errno 2]没有这样的文件或目录
----------------------------------------
命令“python setup.py egg_info”在/private/tmp/pip-build-E50o2C/pyicu中失败,错误代码为1/

我试过下载ez_setup.py并执行python ez_setup.py。我已经升级了setuptools,并分别下载了它们。我不知道还有什么可以尝试的。请帮忙

我在mac上安装polyglot时遇到了这个问题(polyglot需要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

我在ubuntu 14.04和16.04上遇到了这个问题。要解决此问题,请安装libicu dev,然后重试安装。是的

$sudo apt install libicu-dev
$pip install pyicu

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

尝试使用brew安装pyICU:

如果它说它已经安装并且只需要链接,请尝试以下操作:


这将在“/usr/local/cillar/icu4c/…”中创建相对符号链接。

以下解决方案适用于我在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

对于我来说,让它工作:

1) 使用brew安装
icu4c

brew install icu4c
brew link icu4c --force
2) 检查版本:

ls /usr/local/Cellar/icu4c/
它会提示如下内容:
64.2

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

4) 最后为pyicu安装python包:

pip install pyicu --upgrade
如果上述操作失败(我在OS X
10.15上已经遇到过这种情况),您可能需要:

brew install pkg-config

export PYICU_CFLAGS=-std=c++11:-DPYICU_VER='"2.3.1"'

在macOS 10.14.2上,只需将包含
icu config
的目录添加到
路径
中,我就成功了:

brew install icu4c
export PATH="/usr/local/opt/icu4c/bin:$PATH"
pip install pyicu
事实上,
brew信息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"

brew
打包的
icu4c
的当前版本似乎没有正确链接
icu config
文件

运行
brew link icu4c--force
可提供解决此问题的必要信息,但无法自动链接

$ brew link --force icu4c
Warning: Refusing to link macOS-provided software: icu4c
If you need to have icu4c first in your PATH run:
  echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
  echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile

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"
安装
icu4c
后,您需要通过
brew
运行以下操作,才能将
icu-config
导入路径(假设您将bash作为shell运行):

之后,您应该能够安装
pyicu
,而无需任何其他环境变量:

$ pip install --no-cache-dir pyicu
Collecting pyicu
  Downloading https://files.pythonhosted.org/packages/c2/15/0af20b540c828943b6ffea5677c86e908dcac108813b522adebb75c827c1/PyICU-2.2.tar.gz (211kB)
    100% |████████████████████████████████| 215kB 4.9MB/s 
Installing collected packages: pyicu
  Running setup.py install for pyicu ... done
Successfully installed pyicu-2.2
总而言之,下面是我运行的命令的完整列表,以实现此功能:

brew install icu4c
brew link icu4c --force
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
pip install --no-cache-dir pyicu

(顺便说一句,我遇到的许多解决方案都没有将
--no cache dir
选项与
pip install
一起使用。我认为其中一些解决方案可能已经缓存了
pyicu
的内置版本。我做了一段时间,这掩盖了问题。直到我尝试了这个选项,我才能够正确地复制和修复。)

我试图在RHEL中安装,我是从tar.gz文件安装的。 以下是命令:

    /usr/local/bin/pip3 install -U setuptools
    /usr/local/bin/pip3 install -U wheel
    wget http://download.icu-project.org/files/icu4c/50.1.2/icu4c-50_1_2-src.tgz
    tar -zxvf icu4c-50_1_2-src.tgz
    cd icu
    cd source
    sudo ./configure --prefix=/usr
    sudo make
    sudo make install
    icu-config --version
    /usr/local/bin/pip3 install PyICU==2.0.6

这会失败,因为
icu4c
是一个只含小桶的公式,您可以在
brew info icu4c
的告诫部分看到这一点

其他一些答案建议使用
brew链接icu4c
,但这可能会导致其他问题,因为macOS已经提供了
libicucore.dylib

pip安装pyicu
失败,因为

  • 将尝试运行
    icu-config
    命令,因此
    icu-config
    必须位于路径中
  • 将尝试运行
    pkgconfig。。。icu-i18n
    因此icu4c的
    .pc
    文件必须位于
    PKG\u CONFIG\u路径中
对于macOS,如果您不想
brew链接icu4c
,只想使icu4c可用于
pip安装
命令,则可以执行以下操作:

brew install pkg-config icu4c

# brew info icu4c 
export PATH="/usr/local/opt/icu4c/bin:$PATH"
export PATH="/usr/local/opt/icu4c/sbin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"

icu-config --version # 68.2
pkg-config --modversion icu-i18n # 68.2

pip install pyicu==2.6.0 # works because icu-config in PATH and pkgconfig can find icu4c

musicbrainz服务器是用Perl编写的,它的哪一部分会让您尝试安装pyicu?我一直收到以下错误:致命错误:尝试make命令后未找到“unicode/utypes.h”文件。在此之后,我尝试pip安装polyglot,但随后我得到命令“python setup.py egg_info”失败,错误代码为1。我只需要解决第一个错误,但我已经尝试了许多选项,我相信pyicu就是一种尝试。在命令行中运行此命令:
export-pyicu\u CFLAGS=-std=c++11:-DPYICU\u VER=''2.0.3'
对我很有效。这个命令实际上对我的Ubuntu盒有帮助!!多谢各位@Mungai@StevenYong感谢,对我来说最有效的方法是:
brew链接——强制icu4c
然后安装pyICU,然后
brew取消icu4c链接
,以避免在构建依赖mac lib版本的软件时发生冲突。mac os 10.13.6:“brew安装icu4c”然后“brew链接——强制icu4c”对我有效+1这实际上在Sierra对我也有效。即使是与brew的强制链接也不起作用-明确告诉选择哪个版本才有效!谢谢。以下步骤1-4对我无效。我必须安装
pkg config
并导出
PYICU CFLAGS
,这对我有效。
$ pip install --no-cache-dir pyicu
Collecting pyicu
  Downloading https://files.pythonhosted.org/packages/c2/15/0af20b540c828943b6ffea5677c86e908dcac108813b522adebb75c827c1/PyICU-2.2.tar.gz (211kB)
    100% |████████████████████████████████| 215kB 4.9MB/s 
Installing collected packages: pyicu
  Running setup.py install for pyicu ... done
Successfully installed pyicu-2.2
brew install icu4c
brew link icu4c --force
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
pip install --no-cache-dir pyicu
    /usr/local/bin/pip3 install -U setuptools
    /usr/local/bin/pip3 install -U wheel
    wget http://download.icu-project.org/files/icu4c/50.1.2/icu4c-50_1_2-src.tgz
    tar -zxvf icu4c-50_1_2-src.tgz
    cd icu
    cd source
    sudo ./configure --prefix=/usr
    sudo make
    sudo make install
    icu-config --version
    /usr/local/bin/pip3 install PyICU==2.0.6
brew install pkg-config icu4c

# brew info icu4c 
export PATH="/usr/local/opt/icu4c/bin:$PATH"
export PATH="/usr/local/opt/icu4c/sbin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"

icu-config --version # 68.2
pkg-config --modversion icu-i18n # 68.2

pip install pyicu==2.6.0 # works because icu-config in PATH and pkgconfig can find icu4c