我试图从后台运行的进程启动一个wxPython应用程序(我已经转换为带有py2exe的exe)。
问题是当gui应用程序打开时,控制台窗口也会打开(c:\ windows \ system \ cmd.exe)
我查看了this question,其中Alex Martelli建议将creationflags
的{{1}}参数设置为Popen
,但这并没有解决我的问题。
另外我想知道是否有更好的方法在后台运行进程,目前我只是将脚本的扩展名更改为0x08000000
,因为它没有GUI,所以它不是'可见......
这是调用子流程的行
pyw
py2exe脚本
subprocess.Popen(args="%s"%comPort,bufsize=0,
executable="myFrozen_WxpythonApp.exe",
creationflags=0x08000000, shell=False)
更新:
正如我在回答这个问题时解释的那样,问题出在...
options = {'py2exe': {'compressed': 3,
'optimize': 2,
'excludes': excludes,
'packages': packages,
'dll_excludes': dll_excludes,
'bundle_files': 1,
'dist_dir': 'dist',
'xref': False,
'skip_archive': False,
'ascii': False,
#'packages': packages,
'custom_boot_script': '',
}
}
setup(options=options, windows=["app.pyw"], zipfile=None, data_files=data_files)
电话中。
args参数中的第一个字符串应该是可执行文件的名称,然后可执行文件名后面可以跟任何需要传递给子进程的命令或数据。
答案 0 :(得分:3)
在阅读subprocess.Popen
args
参数中的第一个字符串应该是可执行文件的名称。我没有包含可执行文件的名称,因为我认为这是由executable
参数处理的。