安装Dlib时无法找到Boost
我是一个Windows用户,目前正在使用Windows 10.我试图在过去8小时的python 3.5上安装Dlib,但是失败了。每当我尝试“点安装Dlib”,或尝试“python setup.py install”(在dlib文件夹中),我会收到错误消息,说“cmake配置失败”。在整个执行过程中,我可以看到“无法找到BOOST”。有人可以在这里指导我吗?安装Dlib时无法找到Boost
>>python setup.py install
running install
running bdist_egg
running build
Detected Python architecture: 32bit
Detected platform: win32
Removing build directory C:\Users\Tabish\Desktop\dlib-master\./tools/python/build
Configuring cmake ...
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24213.1
-- The CXX compiler identification is MSVC 19.0.24213.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
Imported targets not available for Boost version
Call Stack (most recent call first):
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
C:/Users/Tabish/Desktop/dlib-master/dlib/cmake_utils/add_python_module:61 (FIND_PACKAGE)
CMakeLists.txt:6 (include)
CMake Warning at C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:1499 (message):
No header defined for python-py34; skipping header check
Call Stack (most recent call first):
C:/Users/Tabish/Desktop/dlib-master/dlib/cmake_utils/add_python_module:61 (FIND_PACKAGE)
CMakeLists.txt:6 (include)
-- Could NOT find Boost
CMake Warning at C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
Imported targets not available for Boost version
Call Stack (most recent call first):
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
C:/Users/Tabish/Desktop/dlib-master/dlib/cmake_utils/add_python_module:63 (FIND_PACKAGE)
CMakeLists.txt:6 (include)
CMake Warning at C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:1499 (message):
No header defined for python-py35; skipping header check
Call Stack (most recent call first):
C:/Users/Tabish/Desktop/dlib-master/dlib/cmake_utils/add_python_module:63 (FIND_PACKAGE)
CMakeLists.txt:6 (include)
-- Could NOT find Boost
CMake Warning at C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
Imported targets not available for Boost version
Call Stack (most recent call first):
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
C:/Users/Tabish/Desktop/dlib-master/dlib/cmake_utils/add_python_module:66 (FIND_PACKAGE)
CMakeLists.txt:6 (include)
CMake Warning at C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:1499 (message):
No header defined for python3; skipping header check
Call Stack (most recent call first):
C:/Users/Tabish/Desktop/dlib-master/dlib/cmake_utils/add_python_module:66 (FIND_PACKAGE)
CMakeLists.txt:6 (include)
-- Could NOT find Boost
CMake Warning at C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:744 (message):
Imported targets not available for Boost version
Call Stack (most recent call first):
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
C:/Program Files (x86)/Python35-32/Lib/site-packages/cmake/data/share/cmake-3.7/Modules/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
C:/Users/Tabish/Desktop/dlib-master/dlib/cmake_utils/add_python_module:69 (FIND_PACKAGE)
CMakeLists.txt:6 (include)
-- Could NOT find Boost
-- Found PythonLibs: C:/Program Files (x86)/Python35-32/libs/python35.lib (found suitable version "3.5.2", minimum required is "3.4")
-- *****************************************************************************************************
-- We couldn't find the right version of boost python. If you installed boost and you are still getting this error then you might have installed a version of boost that was compiled with a different version of visual studio than the one you are using. So you have to make sure that the version of visual studio is the same version that was used to compile the copy of boost you are using.
-- Set the BOOST_ROOT and BOOST_LIBRARYDIR environment variables before running cmake.
-- E.g. Something like this:
-- set BOOST_ROOT=C:\local\boost_1_57_0
-- set BOOST_LIBRARYDIR=C:\local\boost_1_57_0\stage\lib
--
-- You will also likely need to compile boost yourself rather than using one of the precompiled
-- windows binaries. Do this by going to the folder tools\build\ within boost and running
-- bootstrap.bat. Then run the command:
-- b2 install
-- And then add the output bin folder to your PATH. Usually this is the C:\boost-build-engine\bin
-- folder. Finally, go to the boost root and run a command like this:
-- b2 -a --with-python address-model=64 toolset=msvc runtime-link=static
-- When it completes, set BOOST_LIBRARYDIR equal to wherever b2 put the compiled libraries.
-- Note that you will need to set the address-model based on if you want a 32 or 64bit python library.
--
-- Next, when you invoke cmake to compile dlib you may have to use cmake's -G option to set the
-- 64 vs. 32bit mode of visual studio. Also, if you want a Python3 library you will need to
error: cmake configuration failed!
尝试以下步骤:(调整适用于Windows)
下载升压源码包。
cd
为抽出升压文件夹运行
.\bootstrap.bat
运行
.\b2 runtime-link=shared link=shared
。 (这将创建一个被自己链接到动态运行时库动态升压库-
设置以下环境变量(它们调整到自己的道路路径)后:
BOOST_LIBRARYDIR="C:\Developer\boost_1_62_0\stage\lib"
BOOST_INCLUDEDIR="C:\Developer\boost_1_62_0"
BOOST_ROOT="C:\Developer\boost_1_62_0"
- 重试与
python setup.py install
我有一个类似的问题时的CMake的find_package()
找不到提振,原因是建设升压只有b2
,没有参数link=shared
导致产生.lib
文件有一个前缀在Windows“LIB”而CMake的find_package()
并不认为这些库有“lib”前缀。
另一个消息来源告诉我使用'bjam'。 'b2'和'bjam'有什么区别? – Gensoukyou1337
以下是b2和bjam之间的区别:http://www.boost.org/build/doc/html/bbv2/faq/names.html – Anass
直到我安装VS2015之前,我没有成功通过'python setup.py install' **更新3 **(似乎只有这个更新包含一些dlib要求的最新C++标准)。 –
如果你使用64位版本的python,你可以通过pip install dlib使用预编译的二进制文件。 –
不,我使用32位版本@Davis –