Ошибка при установке pip pyicu
Я пытаюсь установить сервер musicbrainz на свой Mac, и есть шаг, на котором мне нужно установить 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/
Я попытался загрузить ez_setup.py и выполнить python ez_setup.py. Я обновил setuptools и загрузил их отдельно. Я не уверен, что еще нужно попробовать. Пожалуйста, помогите!
Ответы
Ответ 1
Я столкнулся с этой проблемой на своем mac при попытке установить 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
Ответ 2
Я сталкивался с этой проблемой на Ubuntu 14.04 и 16.04. Чтобы решить эту проблему, установите libicu-dev и попробуйте установить снова. я сделал
$sudo apt install libicu-dev
$pip install pyicu
Ответ 3
Ниже приведено решение только для MAC OSX-
попробуйте установить pyICU с помощью brew:
brew install icu4c
если он говорит, что он уже установлен и просто нужно связать, а затем попробуйте следующее:
brew link icu4c
Это создает относительные символические ссылки в "/usr/local/Cellar/icu4c/..."
Ответ 4
Следующее решение работало для меня в 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
Ответ 5
для меня, чтобы это работает:
1) установить icu4c
с заваркой:
brew install icu4c
brew link icu4c --force
2) проверить версию:
ls /usr/local/Cellar/icu4c/
это подсказывает что-то вроде:
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
4) наконец, установите пакет python для pyicu:
pip install pyicu --upgrade
Если вы не справились с вышеуказанным (это уже случилось со мной в OS X 10.15
), вам может понадобиться:
brew install pkg-config
export PYICU_CFLAGS=-std=c++11:-DPYICU_VER='"2.3.1"'
Ответ 6
В macOS 10.14.2 простое добавление каталога, содержащего icu-config
в PATH
помогло мне:
brew install icu4c
export PATH="/usr/local/opt/icu4c/bin:$PATH"
pip install pyicu
На самом деле, это предлагается, когда вы запускаете brew link
:
brew link 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"' >> ~/.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"
Ответ 7
Похоже, что текущая версия icu4c
упакованная для brew
, неправильно связывает файл 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 в качестве оболочки):
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
После этого вы сможете установить 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
. Я делал это некоторое время, что маскировало проблема. Только когда я попробовал эту опцию, я смог воспроизвести и исправить соответственно.)
Ответ 8
Я пытался установить в 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