2

(Please, excuse my bad English!) Got into trap while trying to install dlib library on my computer(Windows 10 Pro, 64x), but all the time get the same error: Could NOT find Boost

What I have already done:

  1. Installed Visual Studio Community 2017 version 15.1
  2. Installed Anaconda: Python 3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32
  3. Downloaded boost_1_64_0.7z and unpacked it
  4. Ran bootstrap
  5. b2 -a --with-python address-model=64 toolset=msvc runtime-link=static

got the message: The Boost C++ Libraries were successfully built!

6.Next:

    set BOOST_LIBRARYDIR=C:\Users\Lelek\boost_1_64_0\stage\lib
    set BOOST_INCLUDEDIR=C:\Users\Lelek\boost_1_64_0
    set BOOST_ROOT=C:\Users\Lelek\boost_1_64_0
    set PATH=%PATH%;%BOOST_ROOT%;%BOOST_LIBRARYDIR%

7. On this stage if I try to run python setup.py install from dlib directory I get the output (the same error appears when try to call cmake -G "Visual Studio 15 2017 Win64" -DPYTHON3=1 .\tools\python):

    CMake Warning at C:/Program Files/Cmake/share/cmake-3.8/Modules/FindBoost.cmake:1521 (message):
    No header defined for python-py34; skipping header check
    Call Stack (most recent call first):
    C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:61(FIND_PACKAGE)
    CMakeLists.txt:6 (include)
    -- Could NOT find Boost
    CMake Warning at C:/Program Files/Cmake/share/cmake-3.8/Modules/FindBoost.cmake:1521 (message):
    No header defined for python-py35; skipping header check
    Call Stack (most recent call first):
    C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:63 (FIND_PACKAGE)
    CMakeLists.txt:6 (include)
    -- Could NOT find Boost
    CMake Warning at C:/Program Files/Cmake/share/cmake-3.8/Modules/FindBoost.cmake:1521 (message):
    No header defined for python3; skipping header check
    Call Stack (most recent call first):
    C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:66 (FIND_PACKAGE)
    CMakeLists.txt:6 (include)
    -- Could NOT find Boost
    -- Could NOT find Boost
    -- Found PythonLibs: C:/ProgramData/Anaconda3/libs/python36.lib (found suitable version "3.6.0", 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
--  add -DPYTHON3=1.  You do this with a statement like:
--     cmake -G "Visual Studio 12 2013 Win64" -DPYTHON3=1 ..\..\tools\python
--  Rather than:
--     cmake ..\..\tools\python
--  Which will build a 32bit Python2 module by default on most systems.
--
--  

CMake Error at C:/Users/Lelek/dlib-19.4/dlib/cmake_utils/add_python_module:116 (message):
   Boost python library not found.
Call Stack (most recent call first):
  CMakeLists.txt:6 (include)

-- Configuring incomplete, errors occurred!
See also "C:/Users/Lelek/dlib-19.4/tools/python/build/CMakeFiles/CMakeOutput.log".

error: cmake configuration failed!
Oxana Marina
  • 31
  • 1
  • 3
  • "When it completes, set BOOST_LIBRARYDIR equal to wherever b2 put the compiled libraries." - BUT where is it?? Can not find it. – Suisse Jun 29 '17 at 18:49
  • @Suisse if you are still searching for the answer, then look for directory such as "C:\Users\...\boost_1_64_0\stage\lib" – Oxana Marina Jul 10 '17 at 09:19
  • I have thrown my Windows Laptop in the trash and got a Mac. No Problem anymore. Thanks. – Suisse Jul 10 '17 at 14:52

2 Answers2

1

As usual for me, I found the answer, as soon as I asked question. So, if someone will get the same issue:

To solve his problem I deleted Anaconda and installed only Python(3.5.0). Then updated dlib using PyCharm. And again, excuse my bad English, please.

Oxana Marina
  • 31
  • 1
  • 3
1

If anyone still has this problem, try changing all calls to FIND_PACKAGE inside dlib\cmake_utils\add_python_module from 'Boost' to 'boost'. Worked for me.

If, after finding boost, the installation tries to open python27.lib and fails:

  1. Remove boost.
  2. Repeat steps 2--6 from the original question AFTER activating your py36 environment in Anaconda.
  3. Re-run the dlib setup.

The latter was a stupid mistake of mine, but just in case.