运行 Python 脚本而不出现 Windows 控制台

2025-02-20 09:22:00
admin
原创
31
摘要:问题描述:有没有办法在 Windows XP 中运行 Python 脚本而不暂时出现命令 shell?我经常需要使用 Python 自动化 WordPerfect(用于工作),即使我的脚本没有输出,如果我从没有 WP 的地方执行它,空 shell 仍然会弹出一秒钟然后消失。有什么办法可以防止这种情况发生吗?也...

问题描述:

有没有办法在 Windows XP 中运行 Python 脚本而不暂时出现命令 shell?我经常需要使用 Python 自动化 WordPerfect(用于工作),即使我的脚本没有输出,如果我从没有 WP 的地方执行它,空 shell 仍然会弹出一秒钟然后消失。有什么办法可以防止这种情况发生吗?也许是某种输出重定向?


解决方案 1:

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 上实现这一点。

解决方案 2:

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

解决方案 3:

这将适用于所有 Windows 版本:

1.使用记事本(或任何其他文本编辑器)创建“ Runner.bat ”文件并插入以下内容:

@echo off
python server.py

其中server.py是您要运行的 Python 脚本的路径。

2.用记事本创建“ RunScript.vbs ”文件并插入以下内容:

CreateObject("Wscript.Shell").Run "runner.bat",0,True

3.双击运行“ RunScript.vbs ”文件,你的 Python 脚本将会运行,并且不会出现任何可见的控制台窗口

ps 我知道这不是您问题的一部分,但通常情况下,如果您想在 Windows 启动时(用户登录后)运行脚本,只需将“ RunScript.vbs ”文件的快捷方式粘贴到您的启动文件夹中。 (在 Windows 10 上主要位于:C:\Users[USERNAME]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

此致

解决方案 4:

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

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')

解决方案 5:

在 Win10 中非常简单:

打开 PowerShell 并输入以下命令:

type nul > openWindowed.vbs
type nul > main.py
notepad openWindowed.vbs

将以下内容粘贴到您的openWindowed.vbs文件中:

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:Userspath    omain.py" & Chr(34), 0
Set WshShell = Nothing

.vbs文件将执行您的main.py文件而无需打开 cmd。我经常将其用于make.py文件,因为我不懂 cmake 脚本。

解决方案 6:

关闭窗口保护程序。然后pyinstaller使用 安装包pip install pyinstaller

安装后打开cmd并输入pyinstaller --onefile --noconsole filename.py

解决方案 7:

将文件扩展名更改为 .pyw,并将以下行(根据您的 Python 版本进行更改)添加到脚本的开头:

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

现在,如果双击该文件,它将由 pythonw.exe 执行,而无需控制台窗口。

解决方案 8:

通过python.exe运行stanza良好,但使用pythonw.exe则失败。更糟糕的是,没有可行的机制来输出到或。因此,我编写了以下C#程序来在没有命令窗口的情况下启动 python:sysout`syserr`

public class Program
{
  private string python = @"D:LibsPython38Python38_64python.exe";
  private string args = "mdx_server.py";
  private string wkDir = "D:\\Program Files\\mdx-server";
    
  public static void Main(string[] args) {
    Program app = new Program();
    Console.WriteLine(app.python + " " + app.args + " " + app.wkDir);
    app.Exec();
    Console.WriteLine("Start done!");
  }

  private void runThread() {
    Process process = new Process();
    try {
      process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
      process.StartInfo.Arguments = args;

      process.StartInfo.CreateNoWindow = true;
      process.StartInfo.FileName = python;
      process.StartInfo.WorkingDirectory = wkDir;

      process.StartInfo.UseShellExecute = false;
      process.Start();
    } catch (Exception ex) {
      Console.WriteLine(ex.Message);
    }
  }

  public void Exec() {
    Thread _worker = new Thread(runThread);
    _worker.Start();
  }
}

解决方案 9:

我认为 Windows 中有两个选项

  • 选项 1

1. 将文件扩展名更改`.py`为 。`pyw`并将其第一行替换`python.exe`为`pythonw.exe`,如下所示(注意替换`<your_username>\\<your_path_to>`):


#! C:\\Users\\<your_username>\\<your_path_to>\\Scripts\\pythonw.exe
2. 双击`.pyw`脚本文件运行它。
3. 或者,您还可以创建文件的**快捷方式**`.pyw`,以自定义其**名称**、**图标**和**键盘快捷键**作为*最终启动器*!
  • 选项 2

1. 保留`.py`文件扩展名并在第一行替换`pythonw.exe`为,如下所示(注意替换为):`python.exe``<your_username>\\<your_path_to>`


#! C:\\Users\\<your_username>\\<your_path_to>\\Scripts\\python.exe
2. 使用`.vbs`具有以下内容的(Visual Basic Sc​​ript)文件作为`.py`文件的启动器(您可以使用`.vbs`文件来启动`.bat`文件而不显示提示):


Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run "C:Users<your_username><your_path_to>Scriptspython.exe C:Users<your_username><your_path_to>script.py", 0, True
Set WshShell = Nothing
3. 双击`.vbs`文件来运行`.py`脚本。
4. 或者,您还可以创建文件的**快捷方式**`.vbs`,以自定义其**名称**、**图标**和**键盘快捷键**作为*最终启动器*!

解决方案 10:

当您安装Pyinstaller时,您将能够将 .py 转换为 .exe。在设置中,您可以更改是否显示运行文件时 python 打开的控制台窗口。

解决方案 11:

我也遇到了同样的问题。我尝试了很多方法,但都失败了。但我尝试了这个方法,它神奇地起作用了!

因此,我在一个文件夹中有这个 python 文件 (mod.py),我曾经使用命令提示符运行当我关闭 cmd 时,gui 会自动关闭.....(SAD),因此我按如下方式运行它
C:....>pythonw mod.py
不要忘记pythonw“w”是 IMP

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1343  
  信创产业的蓬勃发展推动着各行业数字化转型加速,数据库迁移作为其中关键一环,面临诸多挑战。信创数据库迁移旨在将传统数据库平稳过渡到信创环境,以满足自主可控、安全可靠的需求。这一过程涉及技术、业务等多方面因素,稍有不慎就可能出现各种问题,影响业务的正常运行。深入探讨信创数据库迁移过程中的常见问题及解决方案,对于保障迁移工作...
2027年信创国产化   41  
  随着信息技术的飞速发展,信创国产化成为了国家战略的重要组成部分。国产化信创产品名录涵盖了众多领域,其在各个关键应用场景中发挥着重要作用。而信创国产化操作系统作为其中的核心环节,具备五大核心优势,为我国信息技术产业的自主可控发展提供了坚实支撑。关键应用场景之办公领域在办公领域,国产化信创产品有着广泛且深入的应用。如今,越...
国产信创系统   37  
  随着信息技术的飞速发展,信创国产化操作系统在政府部门的推广应用具有重要的战略意义。它不仅关乎国家信息安全,更是推动国内信息技术产业自主创新、实现科技自立自强的关键举措。在当前复杂的国际形势下,政府部门积极推广信创国产化操作系统,对于保障国家政务信息的安全稳定运行,提升信息技术的自主可控能力,具有不可替代的重要作用。推广...
信创产品有哪些   28  
  在企业数字化转型的进程中,信创数据库解决方案的选择至关重要。它不仅关乎企业数据的安全存储与管理,更影响着企业业务的稳定运行与未来发展。合适的信创数据库能够助力企业在复杂多变的市场环境中提升竞争力,保障数据主权与安全。然而,面对市场上众多的信创数据库产品和解决方案,企业往往感到困惑,不知如何做出正确的选择。接下来,我们将...
信创电脑   24  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用