Estou recebendo o seguinte erro ao tentar fazer: import hdbscan
Estou em uma máquina com Windows 7 e com uma instalação python de 64 bits usando conda
Erro:
ImportError Traceback (most recent call last)
<ipython-input-12-3f1c79fb1b69> in <module>()
----> 1 import hdbscan
c:\anaconda2\lib\site-packages\hdbscan-0.6.2-py2.7-macosx-10.5-x86_64.egg\hdbscan\__init__.py in <module>()
c:\anaconda2\lib\site-packages\hdbscan-0.6.2-py2.7-macosx-10.5-x86_64.egg\hdbscan\hdbscan_.py in <module>()
c:\anaconda2\lib\site-packages\hdbscan-0.6.2-py2.7-macosx-10.5-x86_64.egg\hdbscan\_hdbscan_linkage.py in <module>()
c:\anaconda2\lib\site-packages\hdbscan-0.6.2-py2.7-macosx-10.5-x86_64.egg\hdbscan\_hdbscan_linkage.py in __bootstrap__()
ImportError: DLL load failed: %1 is not a valid Win32 application.
Eu sou um pouco novo na construção de pacotes de conda; infelizmente, parece que ainda preciso aprender muito. Isso é uma falha dos pacotes conda que construí. Se você instalar seus requisitos via conda (principalmente scikit-learn e cython) e usar pip install ou install from source, as coisas devem funcionar. Obrigado pelo relatório. Terei que examinar os problemas de empacotamento do conda e ver se consigo entender o que há de errado aí.
Obrigado por uma resposta tão rápida.
A instalação ainda não funcionou. Eu tentei tanto com o pacote conda de 32 bits quanto com o pacote de 64 bits. Existe alguma outra maneira de fazer isso funcionar.
No caso de instalação do pip, o erro é:
[Anaconda2] C:\Users\user_name>pip install hdbscan
Collecting hdbscan
Using cached hdbscan-0.6.2.tar.gz
Requirement already satisfied (use --upgrade to upgrade): scikit-learn>=0.16 in
c:\anaconda2\lib\site-packages (from hdbscan)
Requirement already satisfied (use --upgrade to upgrade): cython>=0.17 in c:\ana
conda2\lib\site-packages (from hdbscan)
Building wheels for collected packages: hdbscan
Running setup.py bdist_wheel for hdbscan
Complete output from command C:\Anaconda2\python.exe -c "import setuptools;__f
ile__='c:\\users\\user_name\\appdata\\local\\temp\\pip-build-yf7q3s\\hdbscan\\setup.
py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))
" bdist_wheel -d c:\users\user_name\appdata\local\temp\tmpbmg3edpip-wheel-:
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-2.7
creating build\lib.win-amd64-2.7\hdbscan
copying hdbscan\hdbscan_.py -> build\lib.win-amd64-2.7\hdbscan
copying hdbscan\plots.py -> build\lib.win-amd64-2.7\hdbscan
copying hdbscan\robust_single_linkage_.py -> build\lib.win-amd64-2.7\hdbscan
copying hdbscan\__init__.py -> build\lib.win-amd64-2.7\hdbscan
running build_ext
skipping 'hdbscan\_hdbscan_tree.c' Cython extension (up-to-date)
building 'hdbscan._hdbscan_tree' extension
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
creating build\temp.win-amd64-2.7\Release\hdbscan
C:\Users\user_name\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9
.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Anaconda2\lib\s
ite-packages\numpy\core\include -IC:\Anaconda2\include -IC:\Anaconda2\PC /Tchdbs
can\_hdbscan_tree.c /Fobuild\temp.win-amd64-2.7\Release\hdbscan\_hdbscan_tree.ob
j
_hdbscan_tree.c
c:\anaconda2\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api
.h(12) : Warning Msg: Using deprecated NumPy API, disable it by #defining NPY_NO
_DEPRECATED_API NPY_1_7_API_VERSION
hdbscan\_hdbscan_tree.c(2560) : warning C4244: 'function' : conversion from '_
_pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2787) : warning C4244: '=' : conversion from '__pyx_t_
5numpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(2820) : warning C4244: '+=' : conversion from 'Py_ssiz
e_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2831) : warning C4244: '+=' : conversion from 'Py_ssiz
e_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2842) : warning C4244: '+=' : conversion from 'Py_ssiz
e_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2854) : warning C4244: '+=' : conversion from 'Py_ssiz
e_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2899) : warning C4244: '=' : conversion from '__pyx_t_
5numpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(2940) : warning C4244: '=' : conversion from '__pyx_t_
5numpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(4122) : warning C4244: 'function' : conversion from '_
_pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(5242) : warning C4244: 'function' : conversion from '_
_pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(6278) : warning C4244: 'function' : conversion from '_
_pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(6351) : warning C4244: 'function' : conversion from '_
_pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(21049) : error C2275: 'PyGILState_STATE' : illegal use
of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_S
TATE'
hdbscan\_hdbscan_tree.c(21049) : error C2146: syntax error : missing ';' befor
e identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21049) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
hdbscan\_hdbscan_tree.c(21120) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
hdbscan\_hdbscan_tree.c(21146) : error C2275: 'PyGILState_STATE' : illegal use
of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_S
TATE'
hdbscan\_hdbscan_tree.c(21146) : error C2146: syntax error : missing ';' befor
e identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21146) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
hdbscan\_hdbscan_tree.c(21219) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
hdbscan\_hdbscan_tree.c(21246) : error C2275: 'PyGILState_STATE' : illegal use
of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_S
TATE'
hdbscan\_hdbscan_tree.c(21246) : error C2146: syntax error : missing ';' befor
e identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21246) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
hdbscan\_hdbscan_tree.c(21336) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
hdbscan\_hdbscan_tree.c(22003) : error C2275: 'PyGILState_STATE' : illegal use
of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_S
TATE'
hdbscan\_hdbscan_tree.c(22003) : error C2146: syntax error : missing ';' befor
e identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(22003) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
hdbscan\_hdbscan_tree.c(22029) : error C2065: '__pyx_gilstate_save' : undeclar
ed identifier
error: command 'C:\\Users\\user_name\\AppData\\Local\\Programs\\Common\\Microsoft\
\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2
----------------------------------------
Failed building wheel for hdbscan
Failed to build hdbscan
Installing collected packages: hdbscan
Running setup.py install for hdbscan
Complete output from command C:\Anaconda2\python.exe -c "import setuptools,
tokenize;__file__='c:\\users\\user_name\\appdata\\local\\temp\\pip-build-yf7q3s\\hdb
scan\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().re
place('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\user_name\appdata
\local\temp\pip-a6ueto-record\install-record.txt --single-version-externally-man
aged --compile:
running install
running build
running build_py
running build_ext
skipping 'hdbscan\_hdbscan_tree.c' Cython extension (up-to-date)
building 'hdbscan._hdbscan_tree' extension
C:\Users\user_name\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python
\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Anaconda2\lib
\site-packages\numpy\core\include -IC:\Anaconda2\include -IC:\Anaconda2\PC /Tchd
bscan\_hdbscan_tree.c /Fobuild\temp.win-amd64-2.7\Release\hdbscan\_hdbscan_tree.
obj
_hdbscan_tree.c
c:\anaconda2\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_a
pi.h(12) : Warning Msg: Using deprecated NumPy API, disable it by #defining NPY_
NO_DEPRECATED_API NPY_1_7_API_VERSION
hdbscan\_hdbscan_tree.c(2560) : warning C4244: 'function' : conversion from
'__pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2787) : warning C4244: '=' : conversion from '__pyx_
t_5numpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(2820) : warning C4244: '+=' : conversion from 'Py_ss
ize_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2831) : warning C4244: '+=' : conversion from 'Py_ss
ize_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2842) : warning C4244: '+=' : conversion from 'Py_ss
ize_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2854) : warning C4244: '+=' : conversion from 'Py_ss
ize_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2899) : warning C4244: '=' : conversion from '__pyx_
t_5numpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(2940) : warning C4244: '=' : conversion from '__pyx_
t_5numpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(4122) : warning C4244: 'function' : conversion from
'__pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(5242) : warning C4244: 'function' : conversion from
'__pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(6278) : warning C4244: 'function' : conversion from
'__pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(6351) : warning C4244: 'function' : conversion from
'__pyx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(21049) : error C2275: 'PyGILState_STATE' : illegal u
se of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState
_STATE'
hdbscan\_hdbscan_tree.c(21049) : error C2146: syntax error : missing ';' bef
ore identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21049) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
hdbscan\_hdbscan_tree.c(21120) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
hdbscan\_hdbscan_tree.c(21146) : error C2275: 'PyGILState_STATE' : illegal u
se of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState
_STATE'
hdbscan\_hdbscan_tree.c(21146) : error C2146: syntax error : missing ';' bef
ore identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21146) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
hdbscan\_hdbscan_tree.c(21219) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
hdbscan\_hdbscan_tree.c(21246) : error C2275: 'PyGILState_STATE' : illegal u
se of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState
_STATE'
hdbscan\_hdbscan_tree.c(21246) : error C2146: syntax error : missing ';' bef
ore identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21246) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
hdbscan\_hdbscan_tree.c(21336) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
hdbscan\_hdbscan_tree.c(22003) : error C2275: 'PyGILState_STATE' : illegal u
se of this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState
_STATE'
hdbscan\_hdbscan_tree.c(22003) : error C2146: syntax error : missing ';' bef
ore identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(22003) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
hdbscan\_hdbscan_tree.c(22029) : error C2065: '__pyx_gilstate_save' : undecl
ared identifier
error: command 'C:\\Users\\user_name\\AppData\\Local\\Programs\\Common\\Microsof
t\\Visual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2
----------------------------------------
Command "C:\Anaconda2\python.exe -c "import setuptools, tokenize;__file__='c:\\u
sers\\user_name\\appdata\\local\\temp\\pip-build-yf7q3s\\hdbscan\\setup.py';exec(com
pile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __f
ile__, 'exec'))" install --record c:\users\user_name\appdata\local\temp\pip-a6ueto-r
ecord\install-record.txt --single-version-externally-managed --compile" failed w
ith error code 1 in c:\users\user_name\appdata\local\temp\pip-build-yf7q3s\hdbscan
e em caso de instalação manual:
F:\downloads\hdbscan-master\hdbscan-master>python setup.py install
running install
running bdist_egg
running egg_info
writing requirements to hdbscan.egg-info\requires.txt
writing hdbscan.egg-info\PKG-INFO
writing top-level names to hdbscan.egg-info\top_level.txt
writing dependency_links to hdbscan.egg-info\dependency_links.txt
reading manifest file 'hdbscan.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'hdbscan.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build\lib.win-amd64-2.7
creating build\lib.win-amd64-2.7\hdbscan
copying hdbscan\hdbscan_.py -> build\lib.win-amd64-2.7\hdbscan
copying hdbscan\plots.py -> build\lib.win-amd64-2.7\hdbscan
copying hdbscan\robust_single_linkage_.py -> build\lib.win-amd64-2.7\hdbscan
copying hdbscan\__init__.py -> build\lib.win-amd64-2.7\hdbscan
running build_ext
skipping 'hdbscan\_hdbscan_tree.c' Cython extension (up-to-date)
building 'hdbscan._hdbscan_tree' extension
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
creating build\temp.win-amd64-2.7\Release\hdbscan
C:\Users\Intel\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0
\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Anaconda2\lib\sit
e-packages\numpy\core\include -IC:\Anaconda2\include -IC:\Anaconda2\PC /Tchdbsca
n\_hdbscan_tree.c /Fobuild\temp.win-amd64-2.7\Release\hdbscan\_hdbscan_tree.obj
_hdbscan_tree.c
c:\anaconda2\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h
(12) : Warning Msg: Using deprecated NumPy API, disable it by #defining NPY_NO_D
EPRECATED_API NPY_1_7_API_VERSION
hdbscan\_hdbscan_tree.c(2560) : warning C4244: 'function' : conversion from '__p
yx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2787) : warning C4244: '=' : conversion from '__pyx_t_5n
umpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(2820) : warning C4244: '+=' : conversion from 'Py_ssize_
t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2831) : warning C4244: '+=' : conversion from 'Py_ssize_
t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2842) : warning C4244: '+=' : conversion from 'Py_ssize_
t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2854) : warning C4244: '+=' : conversion from 'Py_ssize_
t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(2899) : warning C4244: '=' : conversion from '__pyx_t_5n
umpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(2940) : warning C4244: '=' : conversion from '__pyx_t_5n
umpy_intp_t' to 'int', possible loss of data
hdbscan\_hdbscan_tree.c(4122) : warning C4244: 'function' : conversion from '__p
yx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(5242) : warning C4244: 'function' : conversion from '__p
yx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(6278) : warning C4244: 'function' : conversion from '__p
yx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(6351) : warning C4244: 'function' : conversion from '__p
yx_t_5numpy_intp_t' to 'long', possible loss of data
hdbscan\_hdbscan_tree.c(21049) : error C2275: 'PyGILState_STATE' : illegal use o
f this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_STA
TE'
hdbscan\_hdbscan_tree.c(21049) : error C2146: syntax error : missing ';' before
identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21049) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
hdbscan\_hdbscan_tree.c(21120) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
hdbscan\_hdbscan_tree.c(21146) : error C2275: 'PyGILState_STATE' : illegal use o
f this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_STA
TE'
hdbscan\_hdbscan_tree.c(21146) : error C2146: syntax error : missing ';' before
identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21146) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
hdbscan\_hdbscan_tree.c(21219) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
hdbscan\_hdbscan_tree.c(21246) : error C2275: 'PyGILState_STATE' : illegal use o
f this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_STA
TE'
hdbscan\_hdbscan_tree.c(21246) : error C2146: syntax error : missing ';' before
identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(21246) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
hdbscan\_hdbscan_tree.c(21336) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
hdbscan\_hdbscan_tree.c(22003) : error C2275: 'PyGILState_STATE' : illegal use o
f this type as an expression
C:\Anaconda2\include\pystate.h(137) : see declaration of 'PyGILState_STA
TE'
hdbscan\_hdbscan_tree.c(22003) : error C2146: syntax error : missing ';' before
identifier '__pyx_gilstate_save'
hdbscan\_hdbscan_tree.c(22003) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
hdbscan\_hdbscan_tree.c(22029) : error C2065: '__pyx_gilstate_save' : undeclared
identifier
error: command 'C:\\Users\\user_name\\AppData\\Local\\Programs\\Common\\Microsoft\\V
isual C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2
Isso parece ruim. Eu realmente não tenho certeza do que deu errado aqui - tenho pouca experiência em instalação no Windows. Eu recomendo usar a instalação manual e excluir todos os arquivos .c no diretório hdbscan; ie
hdbscan / _hdbscan_tree.c
hdbscan / _hdbscan_boruvka.x
hdbscan / _hdbscan_linkage.c
hdbscan / _hdbscan_reachability.c
E tente construir novamente; parece haver algo com os arquivos C que o Windows não está gostando.
Eu tentei no Ubuntu. Funcionou bem no Ubuntu
Estou feliz que você conseguiu fazê-lo funcionar. Desculpe pelos problemas no Windows (o Windows parece ser minha maior fonte de problemas). Vou deixar o assunto em aberto por enquanto; algumas das outras pessoas da equipe têm acesso a sistemas Windows em que podem testar e tentaremos resolver os problemas do Windows. Obrigado pelo relatório de problema!
Imcinnes,
Infelizmente estou recebendo as mesmas mensagens de erro acima no win7 64 env.
Cumprimentos
Hari
Nesse ponto, preciso pedir a ajuda de qualquer pessoa com experiência / conhecimento em Windows. Parece que tudo funciona bem no Linux e MacOS X (os ambientes aos quais tenho acesso), e pelo menos às vezes funciona no Windows ... qualquer pessoa com experiência em compilar no windows seria muito apreciada!
Como uma nota rodapé; esta é uma instalação recente do pip que está falhando? Tentei adicionar um pacote de roda para win64 outro dia, fornecido por uma pessoa prestativa - talvez isso tenha causado o problema?
É realmente o pip. Mas acho que o problema era devido ao numpy que exigia cito para as versões 1.10 e superiores. Instalado muito bem quando o Cython foi instalado. Obrigado pela resposta rápida
Pode confirmar, teve que instalar o cython primeiro e depois instalar o hdbscan no ubuntu 16.04
Comentários muito úteis
É realmente o pip. Mas acho que o problema era devido ao numpy que exigia cito para as versões 1.10 e superiores. Instalado muito bem quando o Cython foi instalado. Obrigado pela resposta rápida