如何在 Python 中使用 IDLE 打开当前 运行 脚本的 .py 文件?

How can I open the currently running script's .py file using IDLE in Python?

在用 Python 和 Tkinter 编写的 GUI 应用程序中,我想添加一个菜单命令,它将在 IDLE 中打开 *.py 文件的源代码。我也希望它独立于平台。

我试过使用 os.system 从 Python 的脚本文件夹中打开 IDLE,但这取决于平台。我无法找到一种方法来获取 Python 的 Scripts 文件夹以使其独立。我怎样才能做到这一点?

要在 IDLE 编辑器中打开文件,命令行是

<python> -m idlelib <path>

其中 <python> 是 python 可执行文件的完整路径或解析为此类的名称。如果你想用与 运行 宁你 python 应用程序相同的 python 打开 IDLE,这可能是你想要的,请使用 platform-independent sys.executable。 运行ning 应用的源代码路径是 __file__。当 python 运行 是文件时,这是 semi-hidden 全局变量之一。或者给出任何其他文件的路径。

使用 os.system 还是 subprocess 是另一回事。后者更灵活。 subprocess.run 替换 os.systemsubprocess.Popen 不应该阻止。 IDLE 使用后者来 运行 用户代码。