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

时间:2015-10-26 18:01:43

标签: python windows tkinter console py2exe

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

在应用程序的某个地方,我需要调用外部程序,即ImageMagick和LaTeX。我使用命令os,只需导入os.system(build)模块并运行build = 'convert page.pdf page.gif',其中NSPredicate *predicate = [NSPredicate predicateWithFormat:@"aMostRecentFlag == 1"]; // find old records preferenceData = [PreferenceData MR_findAllWithPredicate:predicate inContext:defaultContext]; // source NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSMutableDictionary *preferencesDict = [[userDefaults dictionaryForKey:@"preferencesDictionary"] mutableCopy]; // target // start filling the userDefaults from the last Preferences record /* Printing description of preferencesDict: { apptInterval = 15; colorScheme = Saori; servicesType = 1; shopCloses = 2000; shopOpens = 900; showServices = 0; syncToiCloud = 0; timeFormat = 12; } */ [preferencesDict setObject: preferenceData.colorScheme forKey:@"shopOpens"]; 等。当从* .exe应用程序调用这些命令时,控制台会弹出(意味着控制台窗口会打开一段时间并再次关闭)。 有没有办法阻止这种行为?

它不会中断应用程序,但它很丑陋并且不是理想的行为。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

import subprocess subprocess.Popen("application.exe", shell = True)