如何使Python脚本在不打开控制台窗口的情况下运行?

如何使Python脚本在不打开控制台窗口的情况下运行?,python,tkinter,Python,Tkinter,我想双击我的Python脚本(它使用Tkinter GUI),我只想让它打开Tkinter窗口,而不是控制台窗口 为此,我将扩展名从.py改为.pyw,这在Windows上似乎可以正常工作,但在Linux机器上双击.pyw文件时,它就不起作用了。它只是冻结了,我不得不重新启动我的系统 请推荐一个平台无关的解决方案,它可以帮助我在不打开终端/命令提示符的情况下运行Python脚本。您可以使用pyinstaller为所需的不同平台创建可执行文件 比如说, pyinstaller命令的语法为: pyi

我想双击我的Python脚本(它使用Tkinter GUI),我只想让它打开Tkinter窗口,而不是控制台窗口

为此,我将扩展名从.py改为.pyw,这在Windows上似乎可以正常工作,但在Linux机器上双击.pyw文件时,它就不起作用了。它只是冻结了,我不得不重新启动我的系统


请推荐一个平台无关的解决方案,它可以帮助我在不打开终端/命令提示符的情况下运行Python脚本。

您可以使用
pyinstaller
为所需的不同平台创建可执行文件

比如说,

pyinstaller命令的语法为:

pyinstaller [options] script [script ...] | specfile
在最简单的情况下,将当前目录设置为程序myscript.py的位置,然后执行:

pyinstaller myscript.py
PyInstaller分析myscript.py和:

Writes myscript.spec in the same folder as the script.
Creates a folder build in the same folder as the script if it does not exist.
Writes some log files and working files in the build folder.
Creates a folder dist in the same folder as the script if it does not exist.
Writes the myscript executable folder in the dist folder.
在dist文件夹中,您可以找到分发给用户的捆绑应用程序

通常在命令行中命名一个脚本。如果您列举了更多信息,所有信息都将被分析并包含在输出中。但是,名为的第一个脚本提供规范文件和可执行文件夹或文件的名称。它的代码是第一个在运行时执行的

对于某些用途,您可以编辑myscript.spec的内容(在“使用规范文件”下介绍)。执行此操作后,将规范文件命名为PyInstaller,而不是脚本:

pyinstaller myscript.spec
例如,您可以提供脚本或等级库文件的路径

pyinstaller options... ~/myproject/source/myscript.py
或者,在Windows上

pyinstaller "C:\Documents and Settings\project\myscript.spec"

我已经有一段时间没有在linux上尝试过了,但我相信这应该相当简单,首先需要在脚本顶部添加一个shebang,以便shell知道要使用哪个可执行文件:

#!/usr/bin/python
或者,如果需要特定版本,可以将其扩展为:

#!/usr/bin/python3.2
使用您想要的任何版本(仅适用于前2位)

然后需要将其标记为可执行文件:

chmod 711 myfile.py
有关此的更多信息,请参见此

然后,当您双击它时,在rpi(我上次使用linux)上,它会询问您是要执行它,还是在终端中执行它


如果您选择在没有终端的情况下执行它,您应该只看到tkinter GUI

它在Windows上工作的原因是它运行一个不同的可执行文件,名为
pythonw.exe
。恐怕我不知道Linux上的等价物是什么。