![](/img/trans.png)
[英]“unknown type name 'decltype'”: Installing pyicu on mac failed, with gcc error
[英]Error installing pip pyicu
我一直在嘗試在我的 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/
我試過下載 ez_setup.py 並執行 python ez_setup.py。 我已經升級了 setuptools 並單獨下載了它們。 我不確定還有什么可以嘗試的。 請幫忙!
我在 ubuntu 14.04 和 16.04 上遇到過這個問題。 要解決此問題,請安裝 libicu-dev,然后再次嘗試安裝。 我做了
$sudo apt install libicu-dev
$pip install pyicu
嘗試安裝多語言時,我在我的 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
讓我得到它的工作:
1)用brew安裝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)最后為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
的目錄添加到PATH
就對我有用:
brew install icu4c
export PATH="/usr/local/opt/icu4c/bin:$PATH"
pip install pyicu
事實上,這是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"
以下解決方案僅適用於 MAC OSX-
嘗試使用 brew 安裝 pyICU:
brew install icu4c
如果它說它已經安裝並且只需要鏈接,那么試試這個:
brew link icu4c
這會在“/usr/local/Cellar/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
似乎為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"
在通過brew
安裝icu4c
后,您需要運行以下icu4c
以將icu-config
放入您的路徑(假設您正在運行 bash 作為您的 shell):
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
( pyicu
,我遇到的許多解決方案都沒有在pip install
使用--no-cache-dir
選項。我認為其中一些可能已經緩存了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 info icu4c
。
其他一些答案建議使用brew link icu4c
但這可能會導致其他問題,因為 macOS 已經提供libicucore.dylib
。
pip install pyicu
失敗,因為
icu-config
命令,因此icu-config
必須在 PATH 中pkgconfig ... icu-i18n
所以.pc
文件必須在PKG_CONFIG_PATH
對於 macOS,如果您不想brew link icu4c
並且只想使 icu4c 可用於您的pip install
命令,那么您可以這樣做:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.