Reputation: 9
I'm trying to install hdbscan with pip and I am getting the following error. I am installing with pip. Using Conda doesn't work because the program requires an older Python version. The Visual Studio Build tools are installed.
Collecting hdbscan==0.8.26
Using cached hdbscan-0.8.26.tar.gz (4.7 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: cython>=0.27 in c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages (from hdbscan==0.8.26) (0.29.14)
Requirement already satisfied: numpy>=1.16.0 in c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages (from hdbscan==0.8.26) (1.17.5)
Requirement already satisfied: joblib in c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages (from hdbscan==0.8.26) (0.11)
Requirement already satisfied: six in c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages (from hdbscan==0.8.26) (1.16.0)
Requirement already satisfied: scikit-learn>=0.17 in c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages (from hdbscan==0.8.26) (0.23.1)
Requirement already satisfied: scipy>=0.9 in c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages (from hdbscan==0.8.26) (1.4.1)
Requirement already satisfied: threadpoolctl>=2.0.0 in c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages (from scikit-learn>=0.17->hdbscan==0.8.26) (3.1.0)
Building wheels for collected packages: hdbscan
Building wheel for hdbscan (pyproject.toml) ... error
ERROR: Command errored out with exit status 1:
command: 'c:\qlik\qlik-py-tools-8.1\qlik-py-env\scripts\python.exe' 'c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' build_wheel 'C:\Users\admeck\AppData\Local\Temp\tmpo74sn8jf'
cwd: C:\Users\admeck\AppData\Local\Temp\pip-install-q5e5v7ff\hdbscan_47946ade5e1b4c3cb78dca867687f59a
Complete output (158 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\hdbscan
copying hdbscan\hdbscan_.py -> build\lib.win-amd64-3.6\hdbscan
copying hdbscan\plots.py -> build\lib.win-amd64-3.6\hdbscan
copying hdbscan\prediction.py -> build\lib.win-amd64-3.6\hdbscan
copying hdbscan\robust_single_linkage_.py -> build\lib.win-amd64-3.6\hdbscan
copying hdbscan\validity.py -> build\lib.win-amd64-3.6\hdbscan
copying hdbscan\__init__.py -> build\lib.win-amd64-3.6\hdbscan
creating build\lib.win-amd64-3.6\hdbscan\tests
copying hdbscan\tests\test_hdbscan.py -> build\lib.win-amd64-3.6\hdbscan\tests
copying hdbscan\tests\test_rsl.py -> build\lib.win-amd64-3.6\hdbscan\tests
copying hdbscan\tests\__init__.py -> build\lib.win-amd64-3.6\hdbscan\tests
running build_ext
Compiling hdbscan/_hdbscan_tree.pyx because it changed.
[1/1] Cythonizing hdbscan/_hdbscan_tree.pyx
building 'hdbscan._hdbscan_tree' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
creating build\temp.win-amd64-3.6\Release\hdbscan
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ic:\qlik\qlik-py-tools-8.1\qlik-py-env\include "-IC:\Program Files\Python36\include" "-IC:\Program Files\Python36\include" -IC:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\numpy\core\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tchdbscan/_hdbscan_tree.c /Fobuild\temp.win-amd64-3.6\Release\hdbscan/_hdbscan_tree.obj
_hdbscan_tree.c
C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:c:\qlik\qlik-py-tools-8.1\qlik-py-env\libs "/LIBPATH:C:\Program Files\Python36\libs" "/LIBPATH:C:\Program Files\Python36" /LIBPATH:c:\qlik\qlik-py-tools-8.1\qlik-py-env\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\x64" /EXPORT:PyInit__hdbscan_tree build\temp.win-amd64-3.6\Release\hdbscan/_hdbscan_tree.obj /OUT:build\lib.win-amd64-3.6\hdbscan\_hdbscan_tree.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\hdbscan\_hdbscan_tree.cp36-win_amd64.lib
Bibliothek "build\temp.win-amd64-3.6\Release\hdbscan\_hdbscan_tree.cp36-win_amd64.lib" und Objekt "build\temp.win-amd64-3.6\Release\hdbscan\_hdbscan_tree.cp36-win_amd64.exp" werden erstellt.
Code wird generiert.
Codegenerierung ist abgeschlossen.
C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\admeck\AppData\Local\Temp\pip-install-q5e5v7ff\hdbscan_47946ade5e1b4c3cb78dca867687f59a\hdbscan\_hdbscan_tree.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\Cython\Compiler\Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\admeck\AppData\Local\Temp\pip-install-q5e5v7ff\hdbscan_47946ade5e1b4c3cb78dca867687f59a\hdbscan\_hdbscan_linkage.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
Error compiling Cython file:
------------------------------------------------------------
...
import numpy as np
cimport numpy as np
from libc.float cimport DBL_MAX
from dist_metrics cimport DistanceMetric
^
------------------------------------------------------------
hdbscan\_hdbscan_linkage.pyx:12:0: 'dist_metrics.pxd' not found
Error compiling Cython file:
------------------------------------------------------------
...
import numpy as np
cimport numpy as np
from libc.float cimport DBL_MAX
from dist_metrics cimport DistanceMetric
^
------------------------------------------------------------
hdbscan\_hdbscan_linkage.pyx:12:0: 'dist_metrics\DistanceMetric.pxd' not found
Error compiling Cython file:
------------------------------------------------------------
...
cpdef np.ndarray[np.double_t, ndim=2] mst_linkage_core_vector(
np.ndarray[np.double_t, ndim=2, mode='c'] raw_data,
np.ndarray[np.double_t, ndim=1, mode='c'] core_distances,
DistanceMetric dist_metric,
^
------------------------------------------------------------
hdbscan\_hdbscan_linkage.pyx:58:8: 'DistanceMetric' is not a type identifier
Error compiling Cython file:
------------------------------------------------------------
...
for j in range(dim):
if in_tree[j]:
continue
right_value = current_distances[j]
left_value = dist_metric.dist(&raw_data_ptr[num_features *
^
------------------------------------------------------------
hdbscan\_hdbscan_linkage.pyx:119:42: Cannot convert 'double_t *' to Python object
Error compiling Cython file:
------------------------------------------------------------
...
continue
right_value = current_distances[j]
left_value = dist_metric.dist(&raw_data_ptr[num_features *
current_node],
&raw_data_ptr[num_features * j],
^
------------------------------------------------------------
hdbscan\_hdbscan_linkage.pyx:121:42: Cannot convert 'double_t *' to Python object
Compiling hdbscan/_hdbscan_linkage.pyx because it changed.
[1/1] Cythonizing hdbscan/_hdbscan_linkage.pyx
Traceback (most recent call last):
File "c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 363, in <module>
main()
File "c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "c:\qlik\qlik-py-tools-8.1\qlik-py-env\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 262, in build_wheel
metadata_directory)
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\setuptools\build_meta.py", line 231, in build_wheel
wheel_directory, config_settings)
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\setuptools\build_meta.py", line 215, in _build_with_temp_dir
self.run_setup()
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\setuptools\build_meta.py", line 268, in run_setup
self).run_setup(setup_script=setup_script)
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\setuptools\build_meta.py", line 158, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 96, in <module>
setup(**configuration)
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\setuptools\__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
File "C:\Program Files\Python36\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Program Files\Python36\lib\distutils\dist.py", line 955, in run_commands
self.run_command(cmd)
File "C:\Program Files\Python36\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\wheel\bdist_wheel.py", line 299, in run
self.run_command('build')
File "C:\Program Files\Python36\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "C:\Program Files\Python36\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "C:\Program Files\Python36\lib\distutils\command\build.py", line 135, in run
self.run_command(cmd_name)
File "C:\Program Files\Python36\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "C:\Program Files\Python36\lib\distutils\dist.py", line 974, in run_command
cmd_obj.run()
File "setup.py", line 26, in run
build_ext.run(self)
File "C:\Program Files\Python36\lib\distutils\command\build_ext.py", line 339, in run
self.build_extensions()
File "C:\Program Files\Python36\lib\distutils\command\build_ext.py", line 448, in build_extensions
self._build_extensions_serial()
File "C:\Program Files\Python36\lib\distutils\command\build_ext.py", line 473, in _build_extensions_serial
self.build_extension(ext)
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\Cython\Distutils\build_ext.py", line 131, in build_extension
ext,force=self.force, quiet=self.verbose == 0, **options
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\Cython\Build\Dependencies.py", line 1154, in cythonize
cythonize_one(*args)
File "C:\Users\admeck\AppData\Local\Temp\pip-build-env-u3h706kv\overlay\Lib\site-packages\Cython\Build\Dependencies.py", line 1321, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: hdbscan/_hdbscan_linkage.pyx
----------------------------------------
ERROR: Failed building wheel for hdbscan
Failed to build hdbscan
ERROR: Could not build wheels for hdbscan, which is required to install pyproject.toml-based projects
I am running the following bat file for the installation. All other parts work. Just the hdbscan fails. I am trying to install this on Windows
@echo off
echo Setting up the Python virtual environment... & echo.
python -m venv "%~dp0\qlik-py-env"
echo.
echo Copying project files to the new directory... & echo.
xcopy /E /I "%~dp0\generated" "%~dp0\qlik-py-env\generated"
xcopy /E /I "%~dp0\core" "%~dp0\qlik-py-env\core"
xcopy /E /I "%~dp0\models" "%~dp0\qlik-py-env\models"
echo.
echo Activating the virtual environment... & echo.
cd /d "%~dp0\qlik-py-env\Scripts"
call activate
cd ..
echo.
echo Installing required packages... & echo.
python -m pip install --upgrade setuptools pip
pip install wheel==0.34.2
pip install grpcio==1.26.0 grpcio-tools==1.26.0 numpy==1.17.5 scipy==1.4.1 pandas==0.25.3 cython==0.29.14 joblib==0.11 holidays==0.9.11 pyyaml==5.3
pip install pystan==2.17
pip install fbprophet==0.4.post2
pip install scikit-learn==0.23.1
pip install hdbscan==0.8.26
pip install spacy==2.2.4
pip install efficient_apriori==1.0.0
pip install tensorflow==1.14.0
pip install keras==2.2.5
python -m spacy download en
echo.
echo Creating a new firewall rule for TCP port 50055... & echo.
netsh advfirewall firewall add rule name="Qlik PyTools" dir=in action=allow protocol=TCP localport=50055
echo.
echo Setup completed. Please check the log above for errors in red text. & echo.
echo Run Qlik-Py-Start.bat to start this Server Side Extension. & echo.
pause
Upvotes: -1
Views: 274
Reputation: 9
The installation with conda worked. Initially Conda could not find the correct environment. The following code segment worked
conda install conda-forge::hdbscan
Upvotes: 0