【问题标题】:Can't call CMake from a Python script无法从 Python 脚本调用 CMake
【发布时间】:2016-10-16 06:50:51
【问题描述】:

我正在尝试从 Python 脚本调用 CMake 命令。这是我的代码:

cmakeCmd = ["C:\Program Files\CMake\bin\cmake.exe",'-G Visual Studio 11 Win64', 'C:\Users\MyUser\Desktop\new\myProject']
retCode = subprocess.check_call(cmakeCmd, shell=True)

但我在运行脚本时得到以下输出:

The filename, directory name, or volume label syntax is incorrect.
Traceback (most recent call last):
  File "C:\Users\ochitaya\Desktop\New\myProj\sc.py", line 10, in <module>
    retCode = subprocess.check_call(cmakeCmd, stderr=subprocess.STDOUT, shell=True)
  File "C:\Python27\lib\subprocess.py", line 541, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:\\Program Files\\CMake\x08in\\cmake.exe', '-G Visual Studio 11 Win64', 'C:\\Users\\ochitaya\\Desktop\new\\myProj']' returned non-zero exit status 1

【问题讨论】:

    标签: python cmake


    【解决方案1】:

    Python 字符串中的反斜杠 (\) 是转义字符。这就是字符串 "C:\Program Files\CMake\bin\cmake.exe" 被转换为 C:\\Program Files\\CMake\x08in\\cmake.exe 的原因(注意 \b 等于 \x08)。要解决此问题,请告诉 Python 您希望字符串按原样读取,或者换句话说,作为 raw 字符串,通过在字符串前面加上 r:

    cmakeCmd = [r"C:\Program Files\CMake\bin\cmake.exe",'-G Visual Studio 11 Win64', r'C:\Users\MyUser\Desktop\new\myProject']
    

    有关此主题的更多信息,请查看string literals 上的官方文档。

    【讨论】:

    • 你知道如果现在它说我该怎么办:
    • mspdb110.dll 丢失
    • @OvedChitayat 您丢失了该文件,或者找不到该文件。无论如何,由于这与这个问题不同,您应该将这个问题标记为已关闭并为该问题打开一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多