Xgboost: falha na instalação do pip

Criado em 2 set. 2015  ·  72Comentários  ·  Fonte: dmlc/xgboost

root@0c6c17725a7b :/# pip install xgboost
Baixando/descompactando xgboost
Não foi possível encontrar uma versão que satisfaça o requisito xgboost (das versões: 0.4a12, 0.4a13)
Limpando...
Nenhuma distribuição correspondente à versão do xgboost
Armazenando log de depuração para falha em /root/.pip/pip.log

Você pode repetir no docker com:
docker run -it --rm ubuntu:trusty

apt-get update
apt-get install python-pip
pip install xgboost

veja isso também:

http://stackoverflow.com/questions/32258463/install-xgboost-under-python-failing

Comentários muito úteis

Eu tive que construir do zero:

git clone --recursive https://github.com/dmlc/xgboost.git  
cd xgboost  
./build.sh
pip install -e python-package  

Todos 72 comentários

Não parece funcionar para mim

ubuntu@ip-172-31-11-169 :~$ sudo apt-get update
... ya ya ya
ubuntu@ip-172-31-11-169 :~$ sudo apt-get install python-pip
Lendo listas de pacotes... Concluído
Construindo árvore de dependências
Lendo informações de estado... Concluído
python-pip já é a versão mais recente.
0 atualizados, 0 recém-instalados, 0 a serem removidos e 74 não atualizados.
ubuntu@ip-172-31-11-169 :~$ sudo pip install xgboost
Baixando/descompactando xgboost
Não foi possível encontrar uma versão que satisfaça o requisito xgboost (das versões: 0.4a12, 0.4a13)
Limpando...
Nenhuma distribuição correspondente à versão do xgboost
Armazenando log de depuração para falha em /home/ubuntu/.pip/pip.log
ubuntu@ip-172-31-11-169 :~$

A sugestão de stackoverflow de --pre produziu isso:

ubuntu@ip-172-31-11-169 :~$ sudo pip install --pre xgboost
Baixando/descompactando xgboost
Baixando xgboost-0.4a13.tar.gz (690kB): 690kB baixados
Executando setup.py (path:/tmp/pip_build_root/xgboost/setup.py) egg_info para o pacote xgboost
xgboost/build-python.sh: 13: xgboost/build-python.sh: pushd: não encontrado
make: * Nenhuma regra para tornar o alvo python'. Stop. ----------------------------- Building multi-thread xgboost failed Start to build single-thread xgboost make: *** No rule to make target limpo'.
Pare.Crie com sucesso o xgboost single-threadSe você quiser uma versão multi-threadVeja instruções adicionais em doc/build.mdxgboost/build-python.sh: 26: xgboost/build-python.sh: popd: não encontrado(Nenhuma, Nenhuma)Traceback (última chamada mais recente):Arquivo "", linha 17, em


init .py", linha 8, em








self._handle = _dlopen(self._name, modo)
OSError: /tmp/pip_build_root/xgboost/xgboost/./wrapper/libxgboostwrapper.so: cabeçalho ELF inválido
Saída completa do comando python setup.py egg_info:
xgboost/build-python.sh: 13: xgboost/build-python.sh: pushd: não encontrado

make: *** Nenhuma regra para tornar o alvo `python'. Pare.


Falha ao construir o xgboost multi-thread

Comece a construir xgboost single-thread

make: *** Nenhuma regra para tornar o alvo 'limpo'. Pare.

make: *** Nenhuma regra para tornar o alvo `python'. Pare.

Crie com sucesso o xgboost single-thread

Se você quiser uma versão multi-thread

Veja instruções adicionais em doc/build.md

xgboost/build-python.sh: 26: xgboost/build-python.sh: popd: não encontrado

(Nenhuma, Nenhuma)

Traceback (última chamada mais recente):

Arquivo "", linha 17, em

Arquivo "/tmp/pip_build_root/xgboost/setup.py", linha 20, em

import xgboost

Arquivo " ./xgboost/init .py", linha 8, em

from .core import DMatrix, Booster

Arquivo "./xgboost/core.py", linha 78, em

_LIB = _load_lib()

Arquivo "./xgboost/core.py", linha 72, em _load_lib

lib = ctypes.cdll.LoadLibrary(lib_path[0])

Arquivo " /usr/lib/python2.7/ctypes/init .py", linha 443, em LoadLibrary

return self._dlltype(name)

Arquivo "/usr/lib/python2.7/ctypes/init .py", linha 365, em init

self._handle = _dlopen(self._name, mode)

OSError: /tmp/pip_build_root/xgboost/xgboost/./wrapper/libxgboostwrapper.so: cabeçalho ELF inválido


Limpando...
O comando python setup.py egg_info falhou com o código de erro 1 em /tmp/pip_build_root/xgboost
Armazenando log de depuração para falha em /home/ubuntu/.pip/pip.log
ubuntu@ip-172-31-11-169 :~$

@cliveseldon @grfiv o versionamento da instalação do pip tem algumas confusões, já que a versão oficial 0.4 existe há muito tempo, e a instalação do pip contém alguma atualização recente do código-fonte, então nomeei a versão com 0.4a12 0.4a13 algo. Ele será corrigido mais tarde a partir do próximo lançamento oficial.

Uma boa solução para atualizar a instalação do pip pode ser deletar o diretório xgboost e o diretório xgboost-0.4a13.dist-info ambos do diretório do pacote do site, por exemplo /User/phunterlau/python2.7/site-packages/ (o local de instalação pode ser encontrado em print xgboost.__file__ ) e refaça 'pip install xgboost' . Obrigado.

Olá,
Eu tenho o mesmo problema na minha caixa ubuntu:

Para correr :

sudo -H pip install --pre xgboost
python -c "import xgboost"

Falha da seguinte forma:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/xgboost/__init__.py", line 11, in <module>
    from .core import DMatrix, Booster
  File "/usr/local/lib/python2.7/dist-packages/xgboost/core.py", line 92, in <module>
    _LIB = _load_lib()
  File "/usr/local/lib/python2.7/dist-packages/xgboost/core.py", line 86, in _load_lib
    lib = ctypes.cdll.LoadLibrary(lib_path[0])
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python2.7/dist-packages/xgboost/./wrapper/libxgboostwrapper.so: invalid ELF header

Eu também tentei sem --pre , ele falha de forma idêntica.

Qualquer pista ?
Obrigado,
F.

Eu usei pip install xgboost para instalar o xgboost-0.4a14 em um mac OSX. Quando tentei carregá-lo, recebi esse erro.

OSError Traceback (última chamada mais recente)
dentro()
----> 1 importar xgboost como xgb

/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/init .py em()
9 sistemas operacionais
10
---> 11 de .core importação DMatrix, Booster
12 de .training trem de importação, cv
13 de .sklearn importam XGBModel, XGBClassifier, XGBRegressor

/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/core.py em()
90
91 # carrega a biblioteca XGBoost globalmente
---> 92 _LIB = _load_lib()
93
94 def _check_call(ret):

/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/core.py em _load_lib()
84 se len(lib_path) == 0:
85 retorno Nenhum
---> 86 lib = ctypes.cdll.LoadLibrary(lib_path[0])
87 lib.XGBGetLastError.restype = ctypes.c_char_p
88 return lib

/Users/azaitzeff/anaconda/lib/python2.7/ctypes/ init .pyc em LoadLibrary(self, name)
441
442 def LoadLibrary(self, name):
--> 443 return self._dlltype(name)
444
445 cdll = LibraryLoader(CDLL)

/Users/azaitzeff/anaconda/lib/python2.7/ctypes/ init .pyc em init (self, name, mode, handle, use_errno, use_last_error)
363
364 se handle for None:
--> 365 self._handle = _dlopen(self._name, modo)
366 mais:
367 self._handle = handle

OSError: dlopen(/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so, 6): Biblioteca não carregada: /usr/local/lib/gcc/4.9/libgomp .1.dylib
Referenciado em: /Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so
Razão: imagem não encontrada

Qualquer ajuda. Obrigado
AZ

@AZaizeff @Fkawala Obrigado. Você pode confirmar se tem o gcc instalado no seu Ubuntu ou Mac? Com suas informações, vejo o problema da lib pré-compilada: se não houver gcc instalado no sistema, o script de compilação no pip falhará. No entanto, no pacote de instalação do pip, incluí uma lib pré-compilada libxgboostwrapper.so usando o gcc 4.9 do brew no Mac, portanto, se o script de compilação falhar, o xgboost procurará essa lib pré-compilada. O Linux não reconhece esta lib do Mac, então tem um erro de código ELF; Para mac sem OpenMP, ele acionará o erro de link. Agora vejo que causa algumas confusões e pode não ser uma boa ideia. Vou atualizar a instalação do pip e exibir a mensagem se não houver gcc. PS Teremos lib pré-compilada e vinculada estática na próxima versão oficial, que é uma solução melhor de envio de código pré-compilado.

@hunterlau Obrigado. Não tenho OpenMP no meu Mac. Então era isso que estava causando o erro.

@hunterlau ok, vou configurar um ambiente de compilação adequado e testar a instalação do pip novamente.

Obrigado pela resposta rápida.

Então eu executei brew install clang-omp e instalou. Excluiu o diretório xgboost e o xgboost-0.4a13.dist-info e reexecutou pip install xgboost. Fechei as janelas do meu terminal e as reabri. Mas ainda estou recebendo o mesmo erro ao tentar importar o xgboost. Alguma ideia?

@AZaizeff na verdade o clang-omp não é recomendado, já que o clang do Xcode não o suporta, então o clang-omp pode dar algum resultado estranho. O pacote de instalação do mac pip foi criado e testado no gcc 4.9 do brew com OpenMP. Você quer tentar com brew install gcc49 ? Agora temos o gcc 5 do brew também, mas não tive a chance de testá-lo completamente. Vou fazê-lo no próximo upload de pip.

Obrigado funcionou muito bem.

@hunterlau a compilação (usando ./xgboost/build-python.sh ) funciona como um encanto. No entanto, a instalação do pip resulta na biblioteca pré-compilada. Modifiquei setup.py para mostrar porque a compilação não foi tentada. Com PIP 7.1.2 (python 2.7), para executar:

pip install --user -e ./tweaked-xgboost-0.4a13/

dá:

'pip' in __file__: False
not os.name == 'nt': True

De acordo com http://stackoverflow.com/questions/9959279/detect-pip-in-setup-py [1] o teste 'pip' in __file__ não funciona com Py 2.7 2014-10-27 nem com instalação personalizada ( como usei no meu comentário anterior). Conforme proposto em [1] 'pip' in os.environ.get('_') é uma maneira mais padrão de testar se o pip executa o setup.py .

@Fkawala Obrigado. 'pip' in __file__ era um truque antigo de muito tempo atrás, bom conhecer o novo. Vou atualizar a instalação do pip e depois enviar um PR (com alguns outros patches).

@hunterlau Eu tenho um problema semelhante, não entendi como corrigir esse erro ELF. Estou trabalhando no Ubuntu e não consigo importar o pacote xgboost depois de instalá-lo com pip. Você escreveu sobre o gcc, instalei o gcc-4.9, mas ainda não funciona, o que está faltando?

Aqui está o meu erro:

importar xgboost

OSError Traceback (última chamada mais recente)
dentro()
----> 1 importação xgboost
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/init .py em()
9 sistemas operacionais
10
---> 11 de .core importação DMatrix, Booster
12 de .training trem de importação, cv
13 de .sklearn importam XGBModel, XGBClassifier, XGBRegressor
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/core.py em()
90
91 # carrega a biblioteca XGBoost globalmente
---> 92 _LIB = _load_lib()
93
94 def _check_call(ret):
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/core.py em _load_lib()
84 se len(lib_path) == 0:
85 retorno Nenhum
---> 86 lib = ctypes.cdll.LoadLibrary(lib_path[0])
87 lib.XGBGetLastError.restype = ctypes.c_char_p
88 return lib
/home/antklen/anaconda/lib/python2.7/ctypes/__init__.pyc em LoadLibrary(self, name)
441
442 def LoadLibrary(self, name):
--> 443 return self._dlltype(name)
444
445 cdll = LibraryLoader(CDLL)
/home/antklen/anaconda/lib/python2.7/ctypes/__init__.pyc em init (self, name, mode, handle, use_errno, use_last_error)
363
364 se handle for None:
--> 365 self._handle = _dlopen(self._name, modo)
366 mais:
367 self._handle = handle
OSError: /home/antklen/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so: cabeçalho ELF inválido

@antklen no Windows, você precisa instalar as ferramentas de configuração primeiro. não tenho certeza se esse é o caso do Ubuntu, mas talvez valha a pena tentar?

@antklen é porque a instalação atual do pip é um script de compilador on-the-fly e vem com uma versão para Mac do arquivo .so, caso alguns usuários de mac não tenham instalado o g++ para compilação. Não foi uma boa ideia e causou algumas confusões para os usuários do Linux.

A solução é que, por favor, instale gcc e g++ apt-get install g++ , para que ele pegue o script de compilação.

E, se o seu pip for mais recente que 0.7.1.2, pode haver outro problema de verificar se o pip está em execução. Vou corrigi-lo e enviá-lo na próxima versão. Se você tiver o g++, mas ainda o mesmo erro, instale manualmente do setup.py seguindo o documento de instalação.

@smargsongithub @hunterlau Obrigado pelas respostas!
apt-get install g++ também não funcionou para mim, mas consegui com a instalação manual conforme descrito aqui https://www.kaggle.com/c/springleaf-marketing-response/forums/t/16320/cloud-vs- prós e contras da máquina local
Eu tive alguns problemas porque estou usando o Anaconda, então minha receita final é

sudo apt-get install make
sudo apt-get update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install git
sudo git clone https://github.com/dmlc/xgboost
cd xgboost
sudo ./build.sh
cd pacote python
sudo /home/username/anaconda/bin/python setup.py install

@antklen oh, você precisa do sudo ao instalar o g ++ :-)

@Fkawala Estou tentando 'pip' in os.environ.get('_') para o pip atualizado, mas os.environ.get('_') sempre retorna None e essa instrução if dá erro. Temos outro método para detectar se pip na linha de comando? Caso contrário, eu criaria um setup.py separado apenas para pip e acionaria o compilador lá. Obrigado.

@hunterlau Estou recebendo o seguinte rastreamento do pip install xgboost, alguma ideia? (executando um Mac)

Traceback (última chamada mais recente):
Arquivo "", linha 20, em
Arquivo "/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/setup.py", linha 38, em
LIB_PATH = libpath 'find_lib_path'
Arquivo "/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/libpath.py", linha 47, em find_lib_path
'Lista de c andidates:n ' + ('n'.join(dll_path))))
builtin .XGBoostLibraryNotFound: Não foi possível encontrar a biblioteca XGBoost no caminho candidato, você executou build.sh no caminho raiz?
Lista de candidatos:
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/../../wrapper/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/./wrapper/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/../../../xgboost/wrapper/libxgboostwrapper.so


O comando "python setup.py egg_info" falhou com o código de erro 1 em /private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost

@pcohen89 este pacote python vem com código C++ e compila on-the-fly, então você pode precisar de um compilador. Você tem seu compilador instalado, por exemplo, gcc-5 ou clang LLVM do Xcode? O Mac não instala as ferramentas de linha de comando xcode por padrão e você pode seguir esta instrução http://railsapps.github.io/xcode-command-line-tools.html ou, outra opção melhor é instalar homebrew http ://brew.sh/ e brew install g++-5 . A opção posterior (g++-5) oferece suporte a OpenMP multi-thread.

Após instalar os compiladores, remova a instalação antiga do xgboost e refaça pip install xgboost

@antklen @hunterlau Tentei seguir os passos mencionados por @antklen . Agora, posso executar import xgboost no terminal. No entanto, no notebook anacondas ipython, ele me dá o erro abaixo. Qualquer ajuda por favor. Estou usando o Ubuntu.

XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candicate path, did you run build.sh in root path?
List of candidates:
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/../../wrapper/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so

@Jeechu isso significa que o xgboost não foi compilado, você:

  1. removeu a instalação antiga do xgboost?
  2. xcode instalado (mac) ou gcc-5 (Mac usa brew, linux usa apt-get ou yum)?

pip install xgboost -v pode informar mais sobre a mensagem de erro.

@hunterlau eu e @Jeechu removemos a instalação antiga do xgboost e instalamos o gcc,g++. O XGBoost está funcionando bem via terminal, mas usando o notebook anaconda ipython está dando esse erro.

Há algo errado com o caminho de instalação?

@rajdeltarobo @Jeechu qual é a versão python do seu notebook ipython? e quais são suas variáveis $PYTHONPATH no .bashrc (ou outros arquivos env de seus shells)?

Parece que seu xgboost está procurando por /home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/ que não é um caminho de instalação do pip (a instalação do pip tem seu número de versão adicional, por exemplo, xgboost-0.4a24), então o notebook ipython tenta pesquisar seu xgboost de python setup.py install do github, portanto, o problema pode vir de $PYTHONPATH

@hunterlau $PYTHONPATH não está definido, está retornando um espaço em branco. No entanto, abaixo está o valor do caminho

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/simpl/anaconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

O caminho do python é

➜  ~  which python  
/usr/bin/python

A versão python do notebook ipython é 2.7

Que tal adicionar algo assim ao seu PYTHONPATH:
/Users/simpl/anaconda/lib/python2.7/site-packages/

se você quiser usar o python do anaconda, fique com ele para tudo, caso contrário, use virtualenv em vez de ter várias instalações do python. É muito confuso se houver várias instalações python na mesma máquina.

@hunterlau Não está funcionando. Estou usando o ubuntu então adicionado

/home/user/anaconda/lib/python2.7/site-packages/

Embora eu possa ver isso no final do arquivo Bashrc

# added by Anaconda 2.3.0 installer
export PATH="/home/user/anaconda/bin:$PATH"

@hunterlau Eu instalei o gcc e achei que era suficiente. Peguei o Xcode e tudo funcionou. Obrigado a todos pelo apoio no Xgboost, é incrível e todos vocês são super prestativos.

@pcohen89 bom saber que o xcode ajudou. Você pode achar que o xcode clang suporta apenas xgboost de thread único, então você pode tentar brew install g++-5 para suporte multithread. de qualquer forma, uma cópia de trabalho é uma boa cópia.

@rajdeltarobo PATH é diferente de PYTHONPATH, onde PYTHONPATH permite que o python encontre a instalação do pacote personalizado. Por favor, adicione-o e forneça seu bashrc.

copie /wrapper/libxgboostwrapper.so para /home/username/anaconda3/lib/python3.4/site-packages/xgboost-0.4-py3.4.egg/xgboost/ resolveu o problema para mim (estou usando o Ubuntu 14.04)

meu problema foi:

XGBoostLibraryNotFound: Não foi possível encontrar a biblioteca XGBoost no caminho candidato, você executou build.sh no caminho raiz?
Lista de candidatos:
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/../../wrapper/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so

@davutpolat o erro da sua mensagem vem de uma alteração recente para resolução de conflitos para instalação do pip, mas essa alteração não foi uma boa ideia, então a revertemos (PR # 572). No futuro, esta cópia não é necessária e teremos outra configuração separada apenas para instalação do pip com compilação em tempo real. Desculpe o transtorno dos últimos dias.

Estou tentando instalar o xgboost através do pip, mas falho com o mesmo erro que o @davutpolat teve. Eu queria usar a solução dele, mas não tenho ideia de onde encontrar /wrapper/libxgboostwrapper.so.

@claygirl você tem gcc ou clang no seu sistema? por favor, informe também o env do seu sistema e a mensagem de erro

Solução. Eu tive o mesmo OSError: /usr/local/lib/libxgboostwrapper.so: não é possível abrir o arquivo de objeto compartilhado: Nenhum arquivo ou diretório. eu copiei o
site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so para /usr/local/lib/ e parece estar funcionando.
Mas não estou feliz com isso, pois tenho 2.7 e 3.4. ..Alguma nova resolução?

@dsivakumar site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper é o local esperado para libxgboostwrapper.so se instalar com pip, e xgboost/lib_path.py incluiu este caminho então import xgboost pode encontrá-lo facilmente. Se você deseja 2.7 e 3.4, use virtualenv e instale com pip separadamente, pois o pip depende das versões do python.

@hunterlau Obrigado, essa parece ser a única solução.

Tentei várias vezes, mas perdi a esperança de instalar o xgboost no meu PC com sistema operacional Windows,
mas agora pode ser que você vai ajudar o que fazer
é o erro
C:UsersSander>pip install xgboost
Coletando xgboost
Baixando xgboost-0.4a30.tar.gz (753kB)
100% |###############################| 753kB 397kB/s
Nenhum arquivo/diretório em
c:userssanderappdatalocaltemppip-build-gqsijfxgbo
ostpip-egg-info (de PKG-INFO)
Eu uso a instalação do python anaconda
Lembro-me de uma competição do kaggle, alguém falhou ao instalar o xgboos e
escolhe outra técnica e ficou em 2º lugar...

Em quinta-feira, 7 de janeiro de 2016 às 3h31, dsivakumar [email protected] escreveu:

@hunterlau https://github.com/hunterlau Obrigado, esse parece ser o único
solução.


Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/dmlc/xgboost/issues/463#issuecomment -169595600.

@ Sandy4321 O Windows não suporta a instalação do pip agora porque não foi definido para o compilador de linha de comando do VS, conforme mencionado no guia de instalação e na solução de problemas. Por favor, use o arquivo de solução VS em windows/ para compilar e instalar. Espero que possa ajudá-lo a obter o 2º lugar também :-)

Estou tentando instalar o Xgboost no Mac 10.10.5 sem o Xcode. Primeiro instalei o GCC 5.3 com suporte a openmp por brew install gcc --without-multilib. Em segundo lugar, eu construo o xgboost por

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
export CC=/usr/local/bin/gcc-5
export CXX=/usr/local/bin/g++-5
cp make/config.mk ./config.mk
fazer -j4

Em seguida, aparece o erro, conforme abaixo,
make: ** [lib/libxgboost.a] Erro 1make: * * Aguardando trabalhos inacabados....
clangclang: : warning: warning: argumento não utilizado durante a compilação: '-pthread'
argumento não utilizado durante a compilação: '-pthread'
ld: biblioteca não encontrada para -lgomp
ld: biblioteca não encontrada para -lgomp
clang: erro: o comando do vinculador falhou com o código de saída 1 (use -v para ver a invocação)
clang: erro: o comando do vinculador falhou com o código de saída 1 (use -v para ver a invocação)
make: ** [lib/libxgboost.so] Erro 1make: * * [xgboost] Erro 1

Ignorei o erro e continuei. Eu digitei os códigos como abaixo
sudo ./build.sh

Então disse
clang: aviso: argumento não utilizado durante a compilação: '-pthread'
Crie com sucesso o xgboost single-thread

Você poderia me dizer por que ainda é um Xgboost de thread único, embora eu tenha instalado o GCC 5 com OpenMP.
O que devo fazer para alterar o Xgboost que instalei em uma versão multithread?

o makefile recente funciona melhor com clang-omp.

Olá, muito obrigado pela sua resposta.
Você quer dizer que agora o xgboost não precisa do gcc, e o clang como compilador também pode suportar vários threads, certo? Como o MAC 10.9 e superior vem com clang, ainda preciso baixar o clang-omp do homebrew
Eu sou um novato. Eu costumava instalar o xgboost de acordo com o método deste site. Existe um guia de instalação atualizado agora? Você pode me dizer como configurá-lo?
Além disso, depois de mudar para clang-omp, preciso primeiro excluir o xgboost já instalado e depois reinstalar o xgboost?
Obrigado!

Em 03/04/2016 01:34:37, "Hongliang Liu" [email protected] escreveu:

o makefile recente funciona melhor com clang-omp.


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente ou visualize-o no GitHub

Thx pela sua resposta rápida. De acordo com sua sugestão, baixei o clang-omp via homebrew.
Então, qual é o próximo passo para mim? Se devo remover o xgboost atual e reinstalá-lo.

por favor altere o compilador padrão em config.mk para clang-omp. Por favor, siga as instruções de construção da parte Mac OS X.

Thx para sua instrução. E eu mudei o compilador padrão no config.mk para clang-omp assim
` export CC = /usr/local/bin/clang-omp

export CXX = /usr/local/bin/clang-omp++

ADD_CFLAGS = -fopenmp`

Então eu compilo por
make -j8

No entanto, o erro aparece novamente:
make: ** [lib/libxgboost.a] Erro 1make: * * Aguardando trabalhos inacabados....
clang-3.5clang-3.5: : errorerror: : nenhum arquivo ou diretório: 'rabit/lib/librabit.a' nenhum arquivo ou diretório: 'rabit/lib/librabit.a'

make: ** [lib/libxgboost.so] Erro 1make: * * [xgboost] Erro 1

Há algo errado para mim?

E eu corro
sudo ./build.sh
erro aparece como abaixo

include/dmlc/omp.h:13:9: aviso: Aviso: OpenMP não está disponível, o projeto será
ser compilado em código de thread único. Use o compilador habilitado para OpenMP para obter
benefício do multi-threading. [-W#pragma-messages]

pragma message("Aviso: OpenMP não está disponível, "

tente reinstalar clang-omp por brew remove clang-omp; brew install clang-omp ; apenas altere essas duas linhas (sem ADD_FLAG ) em config.mk e certifique-se de copiá-las para o mesmo diretório que Makefile .

export CC = clang-omp
export CXX = clang-omp++

e corra make

Usando o Windows 7. Anaconda do yhat Rodeo.

Tentando instalar o xgboost e recebendo o seguinte erro. Por favor ajude.

`! pip instalar xgboost

Coletando xgboost
Usando xgboost-0.4a30.tar.gz em cache
Nenhum arquivo/diretório em C:UsersUSERAppDataLocalTemppip-build-dkmqc8n1xgboostpip-egg-info (de PKG-INFO)`

@hunterlau Obrigado pela sua sugestão. Eu tentei sua instrução e obtendo o seguinte erro. Por favor, dê alguma sugestão.
Reinstalei o clang-imp e alterei duas linhas (sem ADD_FLAG) no config.mk no mesmo diretório que o Makefile está

export CC = clang-omp
export CXX = clang-omp++

Então eu corro sudo make -j4 e recebi o seguinte erro.

ar crv lib/libxgboost.a 
ar: no archive members specified
usage:  ar -d [-TLsv] archive file ...
    ar -m [-TLsv] archive file ...
    ar -m [-abiTLsv] position archive file ...
    ar -p [-TLsv] archive [file ...]
    ar -q [-cTLsv] archive file ...
    ar -r [-cuTLsv] archive file ...
    ar -r [-abciuTLsv] position archive file ...
    ar -t [-TLsv] archive [file ...]
    ar -x [-ouTLsv] archive [file ...]
make: *** [lib/libxgboost.a] Error 1
make: *** Waiting for unfinished jobs....
clang-3.5: warning: argument unused during compilation: '-pthread'
clang-3.5: warning: argument unused during compilation: '-pthread'

Então eu corro sudo ./build.sh e recebo o seguinte erro

ar crv lib/libxgboost.a 
ar: no archive members specified
usage:  ar -d [-TLsv] archive file ...
    ar -m [-TLsv] archive file ...
    ar -m [-abiTLsv] position archive file ...
    ar -p [-TLsv] archive [file ...]
    ar -q [-cTLsv] archive file ...
    ar -r [-cuTLsv] archive file ...
    ar -r [-abciuTLsv] position archive file ...
    ar -t [-TLsv] archive [file ...]
    ar -x [-ouTLsv] archive [file ...]
make: *** [lib/libxgboost.a] Error 1
-----------------------------
Building multi-thread xgboost failed

Olá a todos,
Para instalar o Xgboost no Windows usando Python, siga as instruções no tópico a seguir.

http://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform

@boral sim, a instalação atual do pip não suporta a plataforma de janela. feliz por ter descoberto

@liyanjin você pode apenas fazer 'make xgboost' para a parte principal. para ter ar, talvez seja necessário instalar ar para mac

Estou enfrentando problema semelhante. Meu erro é bastante

OSError: dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): Library not loaded: @rpath/./libgomp.1.dylib
  Referenced from: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
  Reason: image not found

Verifiquei se o gcc está instalado.
$ brew instalar gcc49
Aviso: homebrew/versions/gcc49-4.9.3 já instalado

Estou no mac os instalei o xgboost através do anaconda

@lalmanisha , acredito que você esteja usando o Mac. A prática recomendada atual no Mac é usar clang-omp em vez de gcc . Você pode tentar instalar clang-omp do brew e alterar o CC e CXX no config.mk para clang-omp?

Obrigado pela sua resposta. Ainda recebo a mesma mensagem de erro. Aqui está o
`------------------------------------------------- -------------------------
OSError Traceback (última chamada mais recente)
dentro()
14 # Quaisquer resultados que você gravar no diretório atual são salvos como saída.
15
---> 16 importar xgboost como xgb
17 de sklearn.linear_model import LogisticRegression
18 pandas de importação como pd

/Users/mlal/anaconda/lib/python2.7/site-packages/xgboost.py em()
80
81 # carrega a biblioteca XGBoost globalmente
---> 82 xglib = load_xglib()
83
84

/Users/mlal/anaconda/lib/python2.7/site-packages/xgboost.py em load_xglib()
57 se len(dll_path) == 0:
58 raise XGBoostLibraryNotFound('não foi possível encontrar os arquivos no caminho candidato ' + str(dll_path))
---> 59 lib = ctypes.cdll.LoadLibrary(lib_path[0])
60
61 # funções DMatrix

/Users/mlal/anaconda/lib/python2.7/ctypes/ init .pyc em LoadLibrary(self, name)
441
442 def LoadLibrary(self, name):
--> 443 return self._dlltype(name)
444
445 cdll = LibraryLoader(CDLL)

/Users/mlal/anaconda/lib/python2.7/ctypes/ init .pyc em init (self, name, mode, handle, use_errno, use_last_error)
363
364 se handle for None:
--> 365 self._handle = _dlopen(self._name, modo)
366 mais:
367 self._handle = handle

OSError: dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): Biblioteca não carregada: @rpath/./libgomp.1.dylib
Referenciado de: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
Razão: imagem não encontrada
`
eu mudei o arquivo config.mk como abaixo

escolha do compilador
export CC = clang-omp
export CXX = clang-omp
exportar MPICXX = mpicxx

sudo make -j4
ar crv lib/libxgboost.a
ar: nenhum membro do arquivo especificado
uso: ar -d [-TLsv] arquivo morto ...
ar -m [-TLsv] arquivo morto ...
ar -m [-abiTLsv] posição arquivo de arquivo ...
ar -p [-TLsv] arquivo [arquivo ...]
ar -q [-cTLsv] arquivo de arquivo ...
ar -r [-cuTLsv] arquivo morto ...
ar -r [-abciuTLsv] posição arquivo de arquivo ...
ar -t [-TLsv] arquivo [arquivo ...]
ar -x [-ouTLsv] arquivo [arquivo ...]
make: ** [lib/libxgboost.a] Erro 1make: * * Aguardando trabalhos inacabados....
clang: clang: erro: erro: opção não suportada '-fopenmp'opção não suportada '-fopenmp'

make: ** [lib/libxgboost.so] Erro 1make: * * [xgboost] Erro 1
Quando eu corri
sudo ./build.sh

maker.o build/tree/updater_sync.o dmlc-core/libdmlc.a rabit/lib/librabit_empty.a -pthread -lm
clang: aviso: argumento não utilizado durante a compilação: '-pthread'
Crie com sucesso o xgboost single-thread
Se você quiser uma versão multi-thread
Veja instruções adicionais em doc/build.md

ainda recebo o mesmo erro
dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): Biblioteca não carregada: @rpath/./libgomp.1.dylib
Referenciado de: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
Razão: imagem não encontrada

ok, acho que a combinação acima de alguma ajuda e build.md me ajudou a fazer o xgboost funcionar. Obrigado a todos!

@lalmanisha já que você só precisa do pacote python, você pode apenas make xgboost que remove outros pacotes desnecessários como a versão paralela e yarn que precisa ar . Deve ter sucesso make . E que bom que você descobriu.

Tente instalar o Xgboost com git clone no MAC. Eu sigo todas as instruções de @LiyanJin até esta resposta , baixei o clang-omp via homebrew para usar multi-threading.

  • config.mk :
export CC = clang-omp
export CXX = clang-omp++
export MPICXX = mpicxx
  • Erro:
clang-omp++ -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude -fopenmp  -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
In file included from src/learner.cc:7:
In file included from include/xgboost/logging.h:11:
In file included from dmlc-core/include/dmlc/logging.h:10:
/usr/local/Cellar/clang-omp/2015-04-01/libexec/bin/../include/c++/v1/cstdio:100:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^
1 error generated.
make: *** [build/learner.o] Error 1

pip install funciona bem, mas eu gostaria de ter os últimos recursos do pacote python.

Algumas dicas ?


Editar: encontre a solução. Apenas xcode-select --install e make . Espero que ajude outros.

@armgilles está certo: por padrão, o mac não instalou os compiladores com cabeçalhos enquanto clang-omp precisa do Xcode instalado localmente, instalando-o por xcode-select --install tudo após a atualização para um novo sistema pode resolver o problema .

Eu tive que construir do zero:

git clone --recursive https://github.com/dmlc/xgboost.git  
cd xgboost  
./build.sh
pip install -e python-package  

A sugestão hnykda funcionou para mim no Ubuntu 16.0.4

@hunterlau
Eu tenho o mesmo erro.
ar crv lib/libxgboost.a
ar: nenhum membro do arquivo especificado
uso: ar -d [-TLsv] arquivo morto ...
ar -m [-TLsv] arquivo morto ...
ar -m [-abiTLsv] posição arquivo de arquivo ...
ar -p [-TLsv] arquivo [arquivo ...]
ar -q [-cTLsv] arquivo de arquivo ...
ar -r [-cuTLsv] arquivo morto ...
ar -r [-abciuTLsv] posição arquivo de arquivo ...
ar -t [-TLsv] arquivo [arquivo ...]
ar -x [-ouTLsv] arquivo [arquivo ...]
make: * [lib/libxgboost.a] Erro 1

eu instalei ar. Eu estou querendo saber o que o "ar crv" faz, se eu posso usar outro comando para substituir.
você mencionou " @liyanjin você pode apenas fazer 'make xgboost' para a parte principal. para ter ar, talvez seja necessário instalar ar para mac", não entendo o que "faça 'make xgboost' para a parte principal" meios. espero seus conselhos

Eu instalei o pacote no meu MAC (macOS 10.12.3) com sucesso por:

brew install --with-clang llvm
brew install cmake
brew install gcc --without-multilib

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost; cp make/config.mk ./config.mk; make -j4

cd python-package/ ; python setup.py install

@hnykda Muitas vezes, a solução de trabalho é aparentemente simples. Obrigado, cara.

A solução que encontrei funcionou para mim foi navegar para
/home/username/anaconda3/lib/python3.5/site-packages/xgboost
e executando ./build-python.sh

Parece que há muitos problemas ao instalar o xgboost. tentei instalar no Mac e também falhei. Osmeone poderia me dizer qual é a solução final?

o que funcionou para mim foi adicionar o seguinte no linux ... crédito (todos acima)

git clone --recursive https://github.com/dmlc/xgboost.git  
cd xgboost  
./build.sh
pip install -e python-package 
cd python-package
python setup.py install

Para mim, trabalhei no MacOS Sierra depois de:
brew install gcc --without-multilib

executando estes comandos:

export CC=gcc-7
export CXX=g++-7

@philipshurpik Muito obrigado!

@philipshurpik Isso funcionou muito bem para mim, obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações