python - 从 C++ 获取 python 可执行文件的完整路径

标签 python c++

我有一个用 C++ 编写的程序。我想从中获取 python 可执行文件的完整路径。例如,如果我打开 Windows 命令提示符 (cmd.exe) 并键入 python,它会使用 PATH 中的 python 可执行文件。所以,我想要一个函数 get_exec_path("python") 返回类似 C:\Python27\python.exe 的东西。 C:\Python27\ 在我的 PATH 中。 我需要这个来从 C++ 代码调用 python 脚本。就我的目的而言,在 C++ 中嵌入 python 不是一个好主意。我曾经这样调用它:

std::system("start \"\" /WAIT python myscript.py --arg1 arg1 --arg2 arg2")

但此方法显示命令提示符窗口,我想要某种后台工作。为此,我使用了带有第二个参数 "C:\Python27\python.exe myscript.py --arg1 arg1 --arg2 arg2"CreateProcess。所以,我需要从 PATH 变量到 python 可执行文件的完整路径。

最佳答案

你问错了问题。

与其试图绕过 shell(并在这样做时重新发明 PATH 变量),通过将适当的标志传递给 start 来利用它 用于隐藏命令提示符窗口。

根据 the documentation , 即 /b:

Starts an application without opening a new Command Prompt window.

关于python - 从 C++ 获取 python 可执行文件的完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39851169/

相关文章:

python - 在 Django Rest Framework 中接受 URL 或 PK 作为过滤器

c++ - 将一个元组重新映射到另一个元组

python - 获取subprocess.check_output输出mysql错误

python - 构造函数重载Python

python - 在列表中查找元素并输出子列表项

c++ - 运算符重载 >> 和私有(private)成员

C++:C++如何知道破坏容器内的智能指针?

python - 用一列的前 n 个字母创建一个新列,其中 n 是另一列中的值

c++ - 我可以在每行中有一个包含不同列数的数组吗?

c++ - 通过容器的 protected 继承来 boost foreach