ubuntu16.04安装dlib

安装依赖库的容易与否很多时候看个人运气,有些时候简单的pip install xx或apt-get install xx就能成功,而有些时候则是掉入深坑死活不成,还各种报错,我这次就是掉入了一个深坑,折腾了一天,网上各种找解决方法,还好最终爬出来了。。。如果我的方法对你有用,麻烦点个赞哈,谢谢

安装环境
 

pip version:19.3.1
python version:3.7.4
cmake version:3.15.3
gcc version:5.5.0
OS version:ubuntu16.04

安装方法:

pip install dlib==19.17.0

我这里用的是19.17.0版本,你也可以用最新的19.18.0版本,尽量用新一点的版本,因为不管你用的python3.5、3.6还是3.7新版本

都能用,千万别用19.7.0之前的。

如果你运气好通过上面的一行命令就已经可以安装成功了,如果你像我一样报了如下错误,则使用下面的命令即可解决(解决方法从dlib官网找到的:http://dlib.net/compile.html

sudo apt-get install libx11-dev

错误如下:

20171010
Collecting dlib==19.17.0
  Using cached https://files.pythonhosted.org/packages/05/57/e8a8caa3c89a27f80bc78da39c423e2553f482a3705adc619176a3a24b36/dlib-19.17.0.tar.gz
Building wheels for collected packages: dlib
  Building wheel for dlib (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/ailab/anaconda3/envs/py35/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wx78xd9i/dlib/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wx78xd9i/dlib/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-t7og5x5w --python-tag cp37
       cwd: /tmp/pip-install-wx78xd9i/dlib/
  Complete output (76 lines):
  20171010
  running bdist_wheel
  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.4 (default, Aug  9 2019, 18:51:30)
  Invoking CMake setup: 'cmake /tmp/pip-install-wx78xd9i/dlib/tools/python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-wx78xd9i/dlib/build/lib.linux-x86_64-3.7 -DPYTHON_EXECUTABLE=/home/ailab/anaconda3/envs/py35/bin/python -DCMAKE_BUILD_TYPE=Release'
  CMake Warning (dev) in CMakeLists.txt:
    No project() command is present.  The top-level CMakeLists.txt file must
    contain a literal, direct call to the project() command.  Add a line of
    code such as
  
      project(ProjectName)
  
    near the top of the file, but after cmake_minimum_required().
  
    CMake is pretending there is a "project(Project)" command on the first
    line.
  This warning is for project developers.  Use -Wno-dev to suppress it.
  
  -- The C compiler identification is GNU 5.5.0
  -- The CXX compiler identification is GNU 5.5.0
  -- Check for working C compiler: /usr/bin/cc
  -- Check for working C compiler: /usr/bin/cc -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Check for working CXX compiler: /usr/bin/c++
  -- Check for working CXX compiler: /usr/bin/c++ -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Found PythonInterp: /home/ailab/anaconda3/envs/py35/bin/python (found version "3.7.4")
  CMake Error at /tmp/pip-install-wx78xd9i/dlib/dlib/external/pybind11/tools/FindPythonLibsNew.cmake:122 (message):
    Python config failure: Python is 0-bit, chosen compiler is 64-bit
  Call Stack (most recent call first):
    /tmp/pip-install-wx78xd9i/dlib/dlib/external/pybind11/tools/pybind11Tools.cmake:16 (find_package)
    /tmp/pip-install-wx78xd9i/dlib/dlib/external/pybind11/CMakeLists.txt:33 (include)
  
  
  -- Configuring incomplete, errors occurred!
  See also "/tmp/pip-install-wx78xd9i/dlib/build/temp.linux-x86_64-3.7/CMakeFiles/CMakeOutput.log".
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-wx78xd9i/dlib/setup.py", line 261, in <module>
      'Topic :: Software Development',
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/site-packages/setuptools/__init__.py", line 145, in setup
      return distutils.core.setup(**attrs)
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/site-packages/wheel/bdist_wheel.py", line 192, in run
      self.run_command('build')
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/tmp/pip-install-wx78xd9i/dlib/setup.py", line 135, in run
      self.build_extension(ext)
    File "/tmp/pip-install-wx78xd9i/dlib/setup.py", line 172, in build_extension
      subprocess.check_call(cmake_setup, cwd=build_folder)
    File "/home/ailab/anaconda3/envs/py35/lib/python3.7/subprocess.py", line 347, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['cmake', '/tmp/pip-install-wx78xd9i/dlib/tools/python', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-wx78xd9i/dlib/build/lib.linux-x86_64-3.7', '-DPYTHON_EXECUTABLE=/home/ailab/anaconda3/envs/py35/bin/python', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for dlib
  Running setup.py clean for dlib
Failed to build dlib
Installing collected packages: dlib
    Running setup.py install for dlib ... error
    ERROR: Command errored out with exit status 1:
     command: /home/ailab/anaconda3/envs/py35/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wx78xd9i/dlib/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wx78xd9i/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 /tmp/pip-record-4j1ykojr/install-record.txt --single-version-externally-managed --compile
         cwd: /tmp/pip-install-wx78xd9i/dlib/
    Complete output (78 lines):
    20171010
    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.4 (default, Aug  9 2019, 18:51:30)
    Invoking CMake setup: 'cmake /tmp/pip-install-wx78xd9i/dlib/tools/python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-wx78xd9i/dlib/build/lib.linux-x86_64-3.7 -DPYTHON_EXECUTABLE=/home/ailab/anaconda3/envs/py35/bin/python -DCMAKE_BUILD_TYPE=Release'
    CMake Warning (dev) in CMakeLists.txt:
      No project() command is present.  The top-level CMakeLists.txt file must
      contain a literal, direct call to the project() command.  Add a line of
      code such as
    
        project(ProjectName)
    
      near the top of the file, but after cmake_minimum_required().
    
      CMake is pretending there is a "project(Project)" command on the first
      line.
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- The C compiler identification is GNU 5.5.0
    -- The CXX compiler identification is GNU 5.5.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found PythonInterp: /home/ailab/anaconda3/envs/py35/bin/python (found version "3.7.4")
    CMake Error at /tmp/pip-install-wx78xd9i/dlib/dlib/external/pybind11/tools/FindPythonLibsNew.cmake:122 (message):
      Python config failure: Python is 0-bit, chosen compiler is 64-bit
    Call Stack (most recent call first):
      /tmp/pip-install-wx78xd9i/dlib/dlib/external/pybind11/tools/pybind11Tools.cmake:16 (find_package)
      /tmp/pip-install-wx78xd9i/dlib/dlib/external/pybind11/CMakeLists.txt:33 (include)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/tmp/pip-install-wx78xd9i/dlib/build/temp.linux-x86_64-3.7/CMakeFiles/CMakeOutput.log".
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-wx78xd9i/dlib/setup.py", line 261, in <module>
        'Topic :: Software Development',
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/site-packages/setuptools/__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/command/install.py", line 545, in run
        self.run_command('build')
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/tmp/pip-install-wx78xd9i/dlib/setup.py", line 135, in run
        self.build_extension(ext)
      File "/tmp/pip-install-wx78xd9i/dlib/setup.py", line 172, in build_extension
        subprocess.check_call(cmake_setup, cwd=build_folder)
      File "/home/ailab/anaconda3/envs/py35/lib/python3.7/subprocess.py", line 347, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['cmake', '/tmp/pip-install-wx78xd9i/dlib/tools/python', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-wx78xd9i/dlib/build/lib.linux-x86_64-3.7', '-DPYTHON_EXECUTABLE=/home/ailab/anaconda3/envs/py35/bin/python', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/ailab/anaconda3/envs/py35/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wx78xd9i/dlib/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wx78xd9i/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 /tmp/pip-record-4j1ykojr/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.

另外,如果你使用python setup.py install安装时报了跟上面类似的错误时也可以用上面的解决方法解决。具体报错见下面这个链接吧,贴出来就有点长了

https://github.com/davisking/dlib/issues/1903

这个issue本来是我想问dlib代码管理者的,结果自己解决了,就在后面贴了个解决方法。

猜你喜欢

转载自blog.csdn.net/qq_33391629/article/details/102687132