Xgboost: ImportError: Nenhum módulo denominado numpy.distutils.core (instalação do Ubuntu xgboost)

Criado em 11 fev. 2016  ·  17Comentários  ·  Fonte: dmlc/xgboost

Sou um novo usuário do Ubuntu e recentemente baixei a versão para desktop do Ubuntu 14.04 junto com o Windows 10.

As configurações do meu PC são: 4 GB de RAM, 64 bits

Eu instalei o Anaconda usando o seguinte comando do terminal (após baixar do site):
bash Anaconda3-2.5.0-Linux-x86_64.sh

A instalação foi bem-sucedida.

Agora, no meu terminal ubuntu, segui os passos instruídos em http://xgboost.readthedocs.org/en/latest/build.html#building -on-ubuntu-debian

  1. Instalado um compilador GNU C ++ recente -> bem-sucedido
  2. git clone --recursive https://github.com/dmlc/xgboost cd xgboost; make -j4
    A construção também foi bem-sucedida e pude construir 'libxgboost.so'
  3. sudo apt-get install python-setuptools (bem-sucedido)
  4. cd python-package
  5. sudo python setup.py install

O comando 5. retorna um erro após várias linhas. O erro é o seguinte:

'ImportError: Nenhum módulo denominado numpy.distutils.core'

Alguém pode sugerir como me livrar desse erro para que eu possa instalar o xgboost?

O registro completo após a etapa 5. é o seguinte:

_sidvash @ sidvash-HP-Pavilion-g6-Notebook-PC: ~ / xgboost / python-package $ sudo python setup.py install
Instale libxgboost de: ['/home/sidvash/xgboost/python-package/xgboost/../../lib/libxgboost.so']
executando instalação
executando bdist_egg
executando egg_info
escrever requisitos em xgboost.egg-info / requires.txt
escrevendo xgboost.egg-info / PKG-INFO
escrever nomes de nível superior em xgboost.egg-info / top_level.txt
escrever dependency_links em xgboost.egg-info / dependency_links.txt
lendo o arquivo de manifesto 'xgboost.egg-info / SOURCES.txt'
lendo o modelo de manifesto 'MANIFEST.in'
aviso: não foram encontrados arquivos correspondentes a '_' no diretório 'xgboost / include'
aviso: não foram encontrados arquivos correspondentes a '_' no diretório 'xgboost / src'
aviso: nenhum arquivo incluído anteriormente correspondente a 'xgboost / build / _' encontrado em qualquer lugar na distribuição
aviso: nenhum arquivo incluído anteriormente correspondente a 'xgboost / _. o' encontrado em qualquer lugar na distribuição
aviso: nenhum arquivo incluído anteriormente que corresponda a '_.pyo' encontrado em qualquer lugar na distribuição
aviso: nenhum arquivo incluído anteriormente que corresponda a '_.pyc' foi encontrado em qualquer lugar da distribuição
gravando o arquivo de manifesto 'xgboost.egg-info / SOURCES.txt'
instalando o código da biblioteca para build / bdist.linux-x86_64 / egg
executando install_lib
executando build_py
criando build / bdist.linux-x86_64 / egg
criando build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / libpath.py -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / VERSION -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / build-python.sh -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / __ init__.py -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / training.py -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / compat.py -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / core.py -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / sklearn.py -> build / bdist.linux-x86_64 / egg / xgboost
copiando build / lib.linux-x86_64-2.7 / xgboost / plotting.py -> build / bdist.linux-x86_64 / egg / xgboost
byte-compiling build / bdist.linux-x86_64 / egg / xgboost / libpath.py para libpath.pyc
byte-compiling build / bdist.linux-x86_64 / egg / xgboost / init .py para init .pyc
byte-compiling build / bdist.linux-x86_64 / egg / xgboost / training.py para training.pyc
byte-compiling build / bdist.linux-x86_64 / egg / xgboost / compat.py para compat.pyc
byte-compiling build / bdist.linux-x86_64 / egg / xgboost / core.py para core.pyc
byte-compiling build / bdist.linux-x86_64 / egg / xgboost / sklearn.py para sklearn.pyc
byte-compiling build / bdist.linux-x86_64 / egg / xgboost / plotting.py para plotting.pyc
instalando dados do pacote para build / bdist.linux-x86_64 / egg
executando install_data
copiando /home/sidvash/xgboost/python-package/xgboost/../../lib/libxgboost.so -> build / bdist.linux-x86_64 / egg / xgboost
criando build / bdist.linux-x86_64 / egg / EGG-INFO
copiando xgboost.egg-info / PKG-INFO -> build / bdist.linux-x86_64 / egg / EGG-INFO
copiando xgboost.egg-info / SOURCES.txt -> build / bdist.linux-x86_64 / egg / EGG-INFO
copiando xgboost.egg-info / dependency_links.txt -> build / bdist.linux-x86_64 / egg / EGG-INFO
copiando xgboost.egg-info / not-zip-safe -> build / bdist.linux-x86_64 / egg / EGG-INFO
copiando xgboost.egg-info / requires.txt -> build / bdist.linux-x86_64 / egg / EGG-INFO
copiando xgboost.egg-info / top_level.txt -> build / bdist.linux-x86_64 / egg / EGG-INFO
criando 'dist / xgboost-0.4-py2.7.egg' e adicionando 'build / bdist.linux-x86_64 / egg' a ele
removendo 'build / bdist.linux-x86_64 / egg' (e tudo sob ele)
Processando xgboost-0.4-py2.7.egg
removendo '/usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg' (e tudo sob ele)
criando /usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg
Extraindo xgboost-0.4-py2.7.egg para /usr/local/lib/python2.7/dist-packages
xgboost 0.4 já é a versão ativa em easy-install.pth

/Usr/local/lib/python2.7/dist-packages/xgboost-0.4-py2.7.egg instalado
Dependências de processamento para xgboost == 0.4
Procurando por scipy
Lendo https://pypi.python.org/simple/scipy/
Melhor correspondência: scipy 0.17.0
Fazendo download de https://pypi.python.org/packages/source/s/scipy/scipy-0.17.0.zip#md5 = 28a4fe29e980804db162524f10873211
Processando scipy-0.17.0.zip
Escrevendo /tmp/easy_install-2YPTnH/scipy-0.17.0/setup.cfg
Executando scipy-0.17.0 / setup.py -q bdist_egg --dist-dir /tmp/easy_install-2YPTnH/scipy-0.17.0/egg-dist-tmp-z4NE5c
Traceback (última chamada mais recente):
Arquivo "setup.py", linha 39, em
url = 'https: //github.com/dmlc/xgboost')
Arquivo "/usr/lib/python2.7/distutils/core.py", linha 151, na configuração
dist.run_commands ()
Arquivo "/usr/lib/python2.7/distutils/dist.py", linha 953, em run_commands
self.run_command (cmd)
Arquivo "/usr/lib/python2.7/distutils/dist.py", linha 972, em run_command
cmd_obj.run ()
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", linha 73, em execução
self.do_egg_install ()
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", linha 96, em do_egg_install
cmd.run ()
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 381, em execução
self.easy_install (especificação, não self.no_deps)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 597, em easy_install
return self.install_item (None, spec, tmpdir, deps, True)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 648, em install_item
self.process_distribution (spec, dist, deps)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 694, em process_distribution
[requisito], self.local_index, self.easy_install
Arquivo "/usr/lib/python2.7/dist-packages/pkg_resources.py", linha 620, na resolução
dist = best [req.key] = env.best_match (req, ws, instalador)
Arquivo "/usr/lib/python2.7/dist-packages/pkg_resources.py", linha 858, em best_match
return self.obtain (req, installer) # try and download / install
Arquivo "/usr/lib/python2.7/dist-packages/pkg_resources.py", linha 870, em obter
devolver o instalador (requisito)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 616, em easy_install
return self.install_item (spec, dist.location, tmpdir, deps)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 646, em install_item
dists = self.install_eggs (spec, download, tmpdir)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 834, em install_eggs
return self.build_and_install (setup_script, setup_base)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 1040, em build_and_install
self.run_setup (setup_script, setup_base, args)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py", linha 1025, em run_setup
run_setup (setup_script, args)
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", linha 50, em run_setup
lambda: execfile (
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", linha 100, em execução
return func ()
Arquivo "/usr/lib/python2.7/dist-packages/setuptools/sandbox.py", linha 52, em
{' arquivo ': setup_script, ' nome ': ' principal '}
Arquivo "setup.py", linha 265, em

Arquivo "setup.py", linha 253, em setup_package

ImportError: Nenhum módulo denominado numpy.distutils`_

Comentários muito úteis

Se 'pip install xgboost' não funcionar para você, esse problema também pode ser corrigido fazendo

sudo -s
python setup.py install 

O problema é que 'sudo python' usará o Python do sistema em vez do python do anacoda.

Mais detalhes: http://stackoverflow.com/questions/30626160/anaconda-python-not-available-from-sudo

Todos 17 comentários

Tem certeza de que está usando o python certo?

Experimente

which python

ou

readlink -f `which python`

para determinar se você está usando o Anaconda ou não.

Oi,

Obrigado por comentar.

qual python retorna o seguinte:
/ home / sidvash / anaconda3 / bin / python

@brickerino : Acabei de atualizar o log completo após a etapa 5 na descrição. Por favor, veja se isso ajuda.

A mensagem mostra que você não está tendo um numpy, por favor, verifique se seu PYTHON_PATH está apontando para o caminho do pacote anaconda. Além disso, certifique-se de que conda install numpy se ainda não

@phunterlau :
Eu verifiquei o python_path usando o comando a seguir:
python -c "import sys; print (sys.path)"

Ele retorna :
['', '/home/sidvash/anaconda3/lib/python35.zip', '/home/sidvash/anaconda3/lib/python3.5', '/home/sidvash/anaconda3/lib/python3.5/plat- linux ',' /home/sidvash/anaconda3/lib/python3.5/lib-dynload ',' /home/sidvash/anaconda3/lib/python3.5/site-packages ',' / home / sidvash / anaconda3 / lib /python3.5/site-packages/Sphinx-1.3.5-py3.5.egg ',' /home/sidvash/anaconda3/lib/python3.5/site-packages/cryptography-1.0.2-py3.5- linux-x86_64.egg ',' /home/sidvash/anaconda3/lib/python3.5/site-packages/setuptools-19.6.2-py3.5.egg ']

Isso parece bom para mim. No entanto, vejo em meu primeiro post que o caminho "/usr/lib/python2.7/dist-packages" aparece em várias linhas no erro e não tenho certeza se isso também deve estar lá no caminho python ou não. Você poderia sugerir alguma coisa?

Também executei "conda install numpy", que retornou o seguinte :

Usando o site da API Anaconda Cloud https://api.anaconda.org
Buscando metadados do pacote: ....
Resolvendo as especificações do pacote: ......................
Plano de pacote para instalação em environment / home / sidvash / anaconda3:

Os seguintes pacotes serão baixados:

| pacote | construir |
| --- | --- |
| roda-0.29.0 | py35_0 82 KB |

Os seguintes pacotes serão ATUALIZADOS:

wheel: 0.26.0-py35_1 --> 0.29.0-py35_0

Continuar ([s] / n)? y

Buscando pacotes ...
wheel-0.29.0-p 100% | ###################################### | Tempo: 0:00:01 50,38 kB / s
Extraindo pacotes ...
[COMPLETO] | ####################################################################################################### ##### | 100%
Desvinculando pacotes ...
[COMPLETO] | ####################################################################################################### ##### | 100%
Vinculando pacotes ...
[COMPLETO] | ############################################################################################################### ##### | 100

Tentei sudo python setup.py install depois de instalar, mas sem sorte, continua o mesmo erro

bem, você tem python do sistema e anaconda, e python 2 3 ambos, e você tem a ferramenta de configuração do sistema, então algum env bagunçou. posso sugerir a criação de um virtualenv e instalar o numpy scikit-learn e xgboost

@phunterlau : Obrigado pelo seu comentário. Eu realmente aprecio sua ajuda.

Sou um novato no Ubuntu e não quero bagunçar mais as coisas.

Você poderia me dizer um processo passo a passo para fazer isso?

Eu sei que posso criar um virtualenv usando o seguinte: (instalar o virtualenv não é recomendado com conda)
conda create -n <env_name> python=3.5 anaconda

E então como devo instalar o numpy scikit-learn e o xgboost neste env?

Posso ativar o env:
source activate <env_name>

Devo então prosseguir com outras instalações da seguinte forma:
pip install numpy
pip install scikit-learn

E para xgboost devo repetir todos esses passos?
git clone --recursive https://github.com/dmlc/xgboost cd xgboost; make -j4
cd python-package; sudo python setup.py install

Ok, fiz o seguinte, mas ainda obtive exatamente o mesmo erro:
conda create -n snakes python=3.5 numpy pandas scikit-learn
sidvash:~$ source activate snakes
discarding /home/sidvash/anaconda3/bin from PATH
prepending /home/sidvash/anaconda3/envs/snakes/bin to PATH

cd xgboost/python-package
sudo python setup.py install

Por algum motivo, a instalação ainda continua referindo-se a "/usr/lib/python2.7/dist-packages"

Eu resolvi isso seguindo as etapas abaixo:

  1. Remova o diretório atual chamado "xgboost", que eu baixei anteriormente do github.
  2. pip install xgboost

Isso funcionou como um encanto. Eu não tentei isso antes, pois foi mencionado no site do github que você deve instalar a partir do github para a versão mais recente.

Postei esta questão no estouro de pilha e alguém sugeriu isso. Aqui está o link:
http://stackoverflow.com/questions/35332300/importerror-no-module-named-numpy-distutils-core-ubuntu-xgboost-installation/35493714#35493714

De qualquer forma, muito obrigado pela ajuda pessoal: @brickerino @phunterlau

Que bom que pip install xgboost ajudou :-)

Se 'pip install xgboost' não funcionar para você, esse problema também pode ser corrigido fazendo

sudo -s
python setup.py install 

O problema é que 'sudo python' usará o Python do sistema em vez do python do anacoda.

Mais detalhes: http://stackoverflow.com/questions/30626160/anaconda-python-not-available-from-sudo

@ knguyen0105 Bom funcionou para mim .... obrigado cara .... :)

@ knguyen0105 dando erro
"/home/ashish/anaconda2/bin/../lib/libgomp.so.1: versão` GOMP_4.0 'não encontrada (exigido por /home/ashish/anaconda2/lib/python2.7/site-packages/xgboost /./lib/libxgboost.so) "

alguem pode ajudar?

o que PYTHON_PATH deve retornar?

@ knguyen0105 Funcionou muito bem para mim! Obrigado!

Obrigado knguyen0105, Resumo para Ubuntu, anaconda 2:

  1. http://xgboost.readthedocs.io/en/latest/build.html
  2. sudo -s
    python setup.py install
    ao invés de
    pacote python cd; sudo python setup.py install

@ knguyen0105 , muito obrigado

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