相关疑难解决方法(0)

当我使用os.system()或subprocess.call()时,如何隐藏控制台?

我写了一些如下的陈述:

os.system(cmd) #do something
subprocess.call('taskkill /F /IM exename.exe')
Run Code Online (Sandbox Code Playgroud)

两者都会弹出一个控制台.

如何阻止它弹出控制台?

python windows console subprocess

59
推荐指数
2
解决办法
4万
查看次数

在没有打开系统控制台的情况下调用子进程

我试图从后台运行的进程启动一个wxPython应用程序(我已经转换为带有py2exe的exe).

问题是当gui应用程序打开时,控制台窗口也会打开(c:\ windows\system\cmd.exe)

我看了一下 这个问题,亚历克斯马尔泰利建议设置creationflags的paramater Popen0x08000000但这并没有解决我的问题.

另外我想知道是否有更好的方法在后台运行一个进程,目前我刚刚更改了脚本的扩展名,pyw因为它没有GUI然后它是不可见的...

这是调用子进程的行

    subprocess.Popen(args="%s"%comPort,bufsize=0,
                     executable="myFrozen_WxpythonApp.exe",
                     creationflags=0x08000000, shell=False)
Run Code Online (Sandbox Code Playgroud)

py2exe脚本

...

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)
Run Code Online (Sandbox Code Playgroud)

更新:

正如我在回答这个问题时解释的那样,问题出现在subprocess.Popen电话中.

args参数中的第一个字符串应该是可执行文件的名称,然后可执行文件名称可以跟随需要传递给子进程的任何命令或数据.

python subprocess

7
推荐指数
1
解决办法
2300
查看次数

标签 统计

python ×2

subprocess ×2

console ×1

windows ×1