从 Terminal/C++ 程序启动时的不同 Python 版本

Different Python versions when launching from Terminal/C++ program

如果我在 macOS 从终端启动 python --version,我将获得 3.9 版本。 python3.

也是一样

但是如果我从我的 C++ 程序中启动这些程序(我使用 QProcess),我会得到 2.7 for python3.7 for python3.

为什么会这样?

有什么方法可以启动与终端启动相同的 python 版本吗?

有没有办法找到机器上安装的最新 python 的路径(我需要支持 macOS 和 Linux)。

Addition #1. 在另一台 macOS 机器上,/Applications 文件夹中安装了 Python 3.10。 python3 --version 显示预期的 3.10 版本,但我的 C++ 程序甚至没有看到这个 python3,因此 macOS 显示其系统错误消息,建议用户安装其他组件(这不起作用通过)。

这是 macOS 的问题。从 Dock 启动的应用程序具有与 shell 不同的 PATH 环境变量。 这是一个关于如何解决这个问题的问题: