Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当从python GUI调用命令时,如何阻止控制台弹出?_Python_Windows_Tkinter_Console_Py2exe - Fatal编程技术网

当从python GUI调用命令时,如何阻止控制台弹出?

当从python GUI调用命令时,如何阻止控制台弹出?,python,windows,tkinter,console,py2exe,Python,Windows,Tkinter,Console,Py2exe,我已经为我的应用程序制作了一个GUI。所有脚本都是Python(2.7)的,GUI是用Tkinter创建的。我在Linux上工作,但我需要这个应用程序在Windows上可执行。所以我使用py2exe来创建一个可执行文件。过了一段时间,它工作得几乎完美,但我有以下问题: 在应用程序的某个地方,我需要调用外部程序,即ImageMagick和LaTeX。我使用命令convert,pdflatex,只需导入os模块并运行os.system(build),其中build='convert page.pdf

我已经为我的应用程序制作了一个GUI。所有脚本都是Python(2.7)的,GUI是用Tkinter创建的。我在Linux上工作,但我需要这个应用程序在Windows上可执行。所以我使用py2exe来创建一个可执行文件。过了一段时间,它工作得几乎完美,但我有以下问题:

在应用程序的某个地方,我需要调用外部程序,即ImageMagick和LaTeX。我使用命令
convert,pdflatex
,只需导入
os
模块并运行
os.system(build)
,其中
build='convert page.pdf page.gif'
等。当从*.exe应用程序调用这些命令时,控制台弹出(意味着控制台窗口打开一秒钟后再次关闭). 有没有办法防止这种行为?

它不会中断应用程序,但它是丑陋的,不是期望的行为

[注意]我选择不添加任何示例,因为有很多文件和其他内容,我认为这与问题无关。不过,我可以尝试发布最小(非)工作示例。但也许这是不必要的

谢谢

导入子流程
subprocess.Popen(“application.exe,shell=True)

尝试使用带有修改器的subprocess模块\c也可能有一些特定于软件的“静默”命令。例如,
build='convert page.pdf page.gif
可能有一个等效的
convert page.pdg page.gif静默
选项,或者如果您使用受信任的命令并且需要shell,则设置
shell=True
是配置
startupinfo
隐藏控制台窗口的简单方法。这将使用
%ComSpec%/c
(例如
%SystemRoot%\System32\cmd.exe/c
)运行命令,就像
os.system
。但是,我更喜欢使用
shell=False
,并将
creationflags
参数设置为
distached\u PROCESS
(8)。使用此选项,不会为标记为控制台应用程序(例如cmd.exe、powershell.exe、python.exe)的可执行文件创建控制台窗口,因为子进程不会启动控制台主机conhost.exe的实例。