'pip install dlib, Cmake error compiler is not found
when i want to install pip install dlib it gives me this error i have both installed MSVC v142-vs 2019 c++ x64 build tools and c++ Cmake tools for windows and yet the same error i have even tried NET DESKTOP BUILD TOOLS yet not work. does anyone know how to get ride of this annoying error?
python 32 3.7 windows 7
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users>pip install dlib
Collecting dlib
Using cached https://files.pythonhosted.org/packages/05/57/e8a8caa3c89a27f80bc
78da39c423e2553f482a3705adc619176a3a24b36/dlib-19.17.0.tar.gz
Installing collected packages: dlib
Running setup.py install for dlib ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\appdata\local\programs\python\python37-32\python.e
xe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\
\\AppData\\Local\\Temp\\pip-install-7jf_6geq\\dlib\\setup.py'"'"'; __file__='"'"
'C:\\Users\\\AppData\\Local\\Temp\\pip-install-7jf_6geq\\dlib\\setup.py'"'
"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'
"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'
))' install --record 'C:\Users\AppData\Local\Temp\pip-record-a0stlura\inst
all-record.txt' --single-version-externally-managed --compile
cwd: C:\Users\AppData\Local\Temp\pip-install-7jf_6geq\dlib\
Complete output (80 lines):
running install
running build
running build_py
package init file 'dlib\__init__.py' not found (or not a regular file)
running build_ext
Building extension for Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:05:1
6) [MSC v.1915 32 bit (Intel)]
Invoking CMake setup: 'cmake C:\Users\AppData\Local\Temp\pip-install-7
jf_6geq\dlib\tools\python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\AppDat
a\Local\Temp\pip-install-7jf_6geq\dlib\build\lib.win32-3.7 -DPYTHON_EXECUTABLE=c
:\users\appdata\local\programs\python\python37-32\python.exe -DCMAKE_LIBRA
RY_OUTPUT_DIRECTORY_RELEASE=C:\Users\AppData\Local\Temp\pip-install-7jf_6g
eq\dlib\build\lib.win32-3.7'
-- Building for: NMake Makefiles
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error in CMakeLists.txt:
The CMAKE_C_COMPILER:
cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).
Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path t
o
the compiler, or to the compiler name if it is in the PATH.
CMake Error in CMakeLists.txt:
The CMAKE_CXX_COMPILER:
cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).
Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full pat
h
to the compiler, or to the compiler name if it is in the PATH.
-- Configuring incomplete, errors occurred!
See also "C:/Users/AppData/Local/Temp/pip-install-7jf_6geq/dlib/build/
temp.win32-3.7/Release/CMakeFiles/CMakeOutput.log".
See also "C:/Users/AppData/Local/Temp/pip-install-7jf_6geq/dlib/build/
temp.win32-3.7/Release/CMakeFiles/CMakeError.log".
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\AppData\Local\Temp\pip-install-7jf_6geq\dlib\setup.py
", line 261, in <module>
'Topic :: Software Development',
File "c:\users\appdata\local\programs\python\python37-32\lib\site-pa
ckages\setuptools\__init__.py", line 143, in setup
return distutils.core.setup(**attrs)
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\core.py", line 148, in setup
dist.run_commands()
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\dist.py", line 966, in run_commands
self.run_command(cmd)
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\dist.py", line 985, in run_command
cmd_obj.run()
File "c:\users\appdata\local\programs\python\python37-32\lib\site-pa
ckages\setuptools\command\install.py", line 61, in run
return orig.install.run(self)
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\command\install.py", line 545, in run
self.run_command('build')
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\dist.py", line 985, in run_command
cmd_obj.run()
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\command\build.py", line 135, in run
self.run_command(cmd_name)
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\appdata\local\programs\python\python37-32\lib\distuti
ls\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\AppData\Local\Temp\pip-install-7jf_6geq\dlib\setup.py
", line 135, in run
self.build_extension(ext)
File "C:\Users\AppData\Local\Temp\pip-install-7jf_6geq\dlib\setup.py
", line 172, in build_extension
subprocess.check_call(cmake_setup, cwd=build_folder)
File "c:\users\appdata\local\programs\python\python37-32\lib\subproc
ess.py", line 341, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['cmake', 'C:\\Users\\\AppData
\\Local\\Temp\\pip-install-7jf_6geq\\dlib\\tools\\python', '-DCMAKE_LIBRARY_OUTP
UT_DIRECTORY=C:\\Users\\\AppData\\Local\\Temp\\pip-install-7jf_6geq\\dlib\
\build\\lib.win32-3.7', '-DPYTHON_EXECUTABLE=c:\\users\\\appdata\\local\\p
rograms\\python\\python37-32\\python.exe', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_REL
EASE=C:\\Users\\\AppData\\Local\\Temp\\pip-install-7jf_6geq\\dlib\\build\\
lib.win32-3.7']' returned non-zero exit status 1.
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\appdata\local\pro
grams\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sy
s.argv[0] = '"'"'C:\\Users\\\AppData\\Local\\Temp\\pip-install-7jf_6geq\\d
lib\\setup.py'"'"'; __file__='"'"'C:\\Users\\\AppData\\Local\\Temp\\pip-in
stall-7jf_6geq\\dlib\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__
file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compi
le(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\AppData\Lo
cal\Temp\pip-record-a0stlura\install-record.txt' --single-version-externally-man
aged --compile Check the logs for full command output.
C:\Users>
Solution 1:[1]
Basically what is happening is that in Windows, Cmake, for some reason, defaults to using Nmake. There are various ways to avoid this, with arguably the easiest one being installing Visual C++ Build Tools, as the error itself suggests.
To use the NMake generator with Visual C++, cmake must be run from a shell that can use the compiler cl from the command line. This environment is unable to invoke the cl compiler. To fix this problem, run cmake from the Visual Studio Command Prompt (vcvarsall.bat). Tell CMake where to find the compiler by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH.
Once you have downloaded Build Tools for Visual Studio 2019
, check Visual C++ Build Tools
when the app opens, and then hit install.
Now try doing pip install dlib
from the command line (it will use CMake this time instead of NMake).
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Arihan Sharma |