运行一个简单的.py或.pyw python文件会导致python.exe显示在任务管理器下。
python myApp.py
python myApp.pyw但是,当我们尝试在不使用控制台的情况下运行它时,脚本不会显示为正在运行,python.exe或pythonw.exe也不会出现在任务管理器下
pythonw myApp.pyw
pythonw myApp.py我们如何解决这个问题?系统运行的是Python2.7.8 x64。
发布于 2014-07-19 10:37:03
尝试在myApp.py的开头添加import sys; sys.stderr = open("errlog.txt", "w")行。然后在errlog.txt中查找回溯或任何其他错误消息。
发布于 2014-10-02 03:02:48
我在自己的脚本中遇到了同样的问题,并发现当添加Ross答案的输出时,脚本实际上会运行。
由于某些原因,重定向输出似乎解决了这个问题。因为我对将输出写到磁盘不感兴趣,所以我用以下命令将其写到/dev/null (或相当于平台的东西):
if ( sys.platform == 'win32' and sys.executable.split( '\\' )[-1] == 'pythonw.exe'):
sys.stdout = open(os.devnull, 'w')
sys.stderr = open(os.devnull, 'w')if语句确保只有在从pythonw.exe启动脚本时才会发生这种情况。我不确定它是否相关,但在其他导入(包括import logging)之前做这件事是很重要的。
发布于 2015-01-28 02:05:51
我也有类似的问题。
通过写入日志文件一步一步地调试之后,我发现在尝试使用调用sys.stdout.write()的语句之后,pythonw.exe崩溃了。结果是,当使用pythonw.exe运行时,sys.stdout是None。
如果您正在使用sys.stdout/stderr/stdin的函数,并且打算将您的程序与pythonw.exe一起使用,那么添加对"None“的检查是一个好主意。
https://stackoverflow.com/questions/24835155
复制相似问题