简体   繁体   中英

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>

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).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM