从Python启动Boost.Build命令会产生错误

时间:2018-11-27 08:47:12

标签: python-3.x boost.build

为了在Windows下构建Boost下载,我可以在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,如果在两个提到的路径中路径驱动器的大小写都不相同,则会出现问题。就我而言,我在错误消息中提到的路径的末尾标记了一个点('。')。可以解释这个错误吗?

0 个答案:

没有答案