每次我运行用 pythonnet 编写的 Windows 窗体应用程序时,旁边都会打开一个控制台窗口找不到关闭它的方法

问题描述

我正在使用 pythonnet 构建 Windows 窗体应用程序。我已经构建了一个非常基本的应用程序,代码如下!,我使用 pyinstaller 将其转换为 exe。但是每次我运行 exe 文件时,都会在 gui 应用程序旁边打开一个控制台窗口。 我找不到关闭控制台窗口的方法。 任何帮助将不胜感激!

附言我希望我的问题有意义!

代码如下:

import clr

clr.AddReference('System.IO')
clr.AddReference('System.Drawing')
clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Threading')

import System
import System.IO
import System.Drawing
import System.Windows.Forms
import System.Threading

class homePage(System.Windows.Forms.Form):

    def __init__(self):
        
        self.Text = "AppTest1"
        self.BackColor = System.Drawing.Color.FromArgb(200,150,190)
        self.ClientSize = System.Drawing.Size(600,600)
    
    def run(self):    
        System.Windows.Forms.Application.Run(self)

def main_form_thread():
    app_form = homePage()
    app_form.run()

if __name__ == "__main__":
    main_form_thread()

我在网上得到的答案是关于如何通过创建新的进程对象并将其 UseShellExecute 设置为 false 从我的新代码运行外部 exe 文件。但我不想从另一个 exe 文件调用我的 exe 文件,我希望能够运行主 exe 文件而不打开控制台窗口。 另外,我无法让 System.Diagnostics.Process 在 pythonnet 中工作。

附言我刚开始使用 pythonnet。

解决方法

好的!我知道了!! 结果我的问题错了! 我应该问,使用 PyInstaller 构建时应该如何禁用控制台窗口。 而这个问题已经得到解答here

如果你懒得点击链接,那么在使用 pyinstaller 构建时只需添加这个标志 --noconsole,就像这样 pyinstaller --noconsole your_script_name.py