在不显示Windows控制台的情况下运行Python脚本

在不显示Windows控制台的情况下运行Python脚本,python,windows,shell,Python,Windows,Shell,有没有办法在Windows XP中运行Python脚本而不立即出现命令shell?我经常需要用Python自动化WordPerfect(用于工作),即使我的脚本没有输出,如果我在没有WP的情况下执行它,一个空壳仍然会弹出一秒钟,然后消失。有没有办法防止这种情况?可能是某种输出重定向?pythonw.exe将在没有命令提示的情况下运行脚本。问题是Python解释器Python.exe与控制台子系统链接以生成控制台输出(因为这是90%的情况)——pythonw.exe与GUI子系统链接,Window

有没有办法在Windows XP中运行Python脚本而不立即出现命令shell?我经常需要用Python自动化WordPerfect(用于工作),即使我的脚本没有输出,如果我在没有WP的情况下执行它,一个空壳仍然会弹出一秒钟,然后消失。有没有办法防止这种情况?可能是某种输出重定向?

pythonw.exe将在没有命令提示的情况下运行脚本。问题是Python解释器Python.exe与控制台子系统链接以生成控制台输出(因为这是90%的情况)——pythonw.exe与GUI子系统链接,Windows不会为其创建控制台输出窗口,除非它要求这样做

讨论使用Python进行GUI编程,并提及pythonw.exe。它还有用地指出,如果Python文件以
.pyw
而不是
.py
结尾,则标准Windows安装程序将正确设置关联,并在pythonw.exe中运行Python


在您的情况下,这听起来不是一个问题,但是依赖pythonw.exe会使您的应用程序特定于Windows——其他解决方案也可以在Mac OS X上实现这一点。

如果您将文件命名为“.pyw”扩展名,那么Windows将使用pythonw.exe解释器执行这些文件。这不会打开dos控制台来运行脚本。

我尝试了上面的方法,但是,由于脚本中有计时器,控制台会很快出现并消失。最后,我发现了以下代码:

import ctypes
import os
import win32process

hwnd = ctypes.windll.kernel32.GetConsoleWindow()      
if hwnd != 0:      
    ctypes.windll.user32.ShowWindow(hwnd, 0)      
    ctypes.windll.kernel32.CloseHandle(hwnd)
    _, pid = win32process.GetWindowThreadProcessId(hwnd)
    os.system('taskkill /PID ' + str(pid) + ' /f')

我也有同样的问题。我尝试了很多选择,但都失败了 但是我尝试了这个方法,它神奇地工作了

因此,我将这个python文件(mod.py)放在一个文件夹中,我使用命令提示符运行它 当我过去关闭cmd时,gui会自动关闭…(悲伤), 所以我运行它如下
C:\..>pythonw mod.py
不要忘记pythonw“w”在Win10中是IMP

非常简单:
打开PowerShell并键入以下命令:

type nul > openWindowed.vbs
type nul > main.py
notepad openWindowed.vbs
将下一个粘贴到openWindowed.vbs文件中:


.vbs文件将在不打开cmd的情况下执行main.py文件。我经常在make.py文件中使用它,因为我不知道cmake脚本。

将文件扩展名更改为.pyw,并在脚本开头添加以下行(根据python版本相应更改):

#! c:\\Users\\sohra\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe

现在,如果双击该文件,pythonw.exe将在没有控制台窗口的情况下执行该文件。

有没有办法在python脚本中指定天气以使用
python.exe
pythonw.exe
?例如,
def prog_a():以pythonw()的形式运行等等
vs.
def prog_b():以python()的形式运行等等
。切换到静默模式,如果你愿意的话。它不能像你解释的那样为.pyw使用pythonw.exe。你能更新一下答案吗。如果你的
程序.pyw
仍然弹出一个控制台窗口,那可能是因为你有一个不正确的#!程序开头的行。(在将为Linux编写的GUI程序(从
#!/usr/bin/env python
)复制到Windows 7时发现了困难的方法。)只需删除该行即可。无法执行脚本python exeI尝试了“type nul>openWindowed.vbs”和“nul>openWindowed.vbs”。。两人都犯了错误。看起来你可能只是在这里创建空文件,对吗?对不起,我对vbs或PowerShell几乎一无所知。
#! c:\\Users\\sohra\\AppData\\Local\\Programs\\Python\\Python38\\pythonw.exe