Команда Boost.Build выдает ошибку при запуске из Python - PullRequest
0 голосов
/ 27 ноября 2018

Чтобы создать Boost-загрузку под Windows, я могу успешно выполнить следующую команду в консоли cmd в папке boost:

    b2.exe install --prefix=_install --build-dir=_build --with-atomic --with-date_time --with-thread address-model=64 toolset=msvc-12.0 > build.log 2>&1

Я пытаюсь сейчас выполнить ту же командуиз следующего скрипта Python:

    #! python

    import os
    import subprocess
    import sys

    os.chdir('boost')

    if not os.path.isfile('b2.exe'):
      sys.exit("Call boost-configure.py before.")

    subprocess.call('b2.exe install'
      ' --prefix=_install'
      ' --build-dir=_build'
      ' --with-atomic'
      ' --with-date_time'
      ' --with-thread'
      ' address-model=64'
      ' toolset=msvc-12.0'
      ' > build.log 2>&1')

    os.chdir('../')

Но я получаю следующую ошибку:

    error: at Jamroot:174
    error: Attempt to redeclare already registered project id '/boost'.
    error: Original project:
    error:     Name: Jamfile<C:\git\test_system\source\library\boost>
    error:     Module: Jamfile<C:\git\test_system\source\library\boost>
    error:     Main id: /boost
    error:     File: Jamroot
    error:     Location: .
    error: New project:
    error:     Module: Jamfile<C:\git\test_system\source\library\boost\.>
    error:     File: Jamroot
    error:     Location: .

Поскольку команда b2 выполняется в первом случае, я предполагаю, что проблема связанадля среды выполнения: Python subprocess.call не предоставляет тот же контекст, что и cmd, по-видимому.У кого-нибудь есть идея?

Отредактировано
Я видел по следующей ссылке: https://lists.boost.org/boost-build/2012/08/26295.php, что может возникнуть проблема, если диск пути не пишется с заглавной буквы в том жепуть в обоих упомянутых путях.В моем случае я отмечаю точку ('.') В конце пути, упомянутого в сообщении об ошибке.Может ли это объяснить ошибку?

...