python - 以编程方式调用 VS 开发人员命令提示符中的命令

标签 python python-3.x visual-studio subprocess popen

简介
我正在尝试使用 'nmake' 调用需要从 VS 开发人员命令提示符内部运行的命令( Subprocess.Popen )在 python 中。
为它设置路径对我的情况不起作用。
我试着阅读 docs并且似乎没有其他方法可以使用默认 CMD.exe 以外的其他内容。
我的代码

import subprocess

command = ['nmake']
with subprocess.Popen(["nmake"],
                      executable=r"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsMSBuildCmd.bat",
                      stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                      universal_newlines=True) as process:
    print(process.stdout.readlines())
    print(process.stderr.readlines())
异常(exception)
它目前抛出'nmake' is not recognized as an internal or external command所以它实际上并没有使用那里提供的可执行文件。
备注
使用的系统:Windows 10,python3.8

最佳答案

这可能发生在处理路径文件名中的引号的情况下。您可以尝试的几件事:

  • popen参数添加 shell=True这会导致子进程产生一个中间 shell 进程,并告诉它运行命令
  • 使用 executable = [r"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsMSBuildCmd.bat"]
  • 关于python - 以编程方式调用 VS 开发人员命令提示符中的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65902953/

    相关文章:

    javascript - 如何在 javascript 中使用 python 变量?

    python - 使用循环查找散列对象中前 d 个零的数量

    c++ - 为什么 std::regex_search 找不到正确的重载?

    python - 如何在 Django 模板中显示列表?

    c++ - 将现有 C++ 源代码导入 Visual Studio

    css - Visual Studio 中颜色名称下的颜色线

    python - 在 tkinter 菜单中的帧之间切换

    python - 使用Kombu ConsumerMixin,如何声明多个绑定(bind)?

    python - NumPy 版本字符串记录在哪里?

    python - Python 中元组的逐元素操作