首页 > 解决方案 > 在不使用 pythonw.exe 的情况下执行没有控制台窗口的脚本

问题描述

我有一个 python 脚本,它使用http.server我想在不显示终端窗口的情况下运行的模块。不幸的是,由于我这样做的方式,运行脚本pythonw.exe不起作用。

这是脚本:

import os
from http.server import CGIHTTPRequestHandler, HTTPServer
handler = CGIHTTPRequestHandler
handler.cgi_directories = ['/scripts']
server = HTTPServer(('localhost', 1271), handler)
server.serve_forever()

不幸的是,我不知道有什么方法可以得到任何错误日志,因为你知道,pythonw 不显示 console。如果有人能告诉我如何获取错误日志,我很乐意将它们添加到这篇文章的底部。

我正在运行 64 位 Windows 10 和 python 3.6.6,如果这有所作为的话。

如果这是一个愚蠢的问题,我很抱歉,但我——为了我的一生——在任何地方都找不到解决方案。

标签: pythonhttpserverpythonw

解决方案


您可以像这样将输出存储到文本文件中:

from http.server import CGIHTTPRequestHandler, HTTPServer
import sys

handler = CGIHTTPRequestHandler
handler.cgi_directories = ['/scripts']
server = HTTPServer(('localhost', 1271), handler)
sys.stderr = open('log.txt', 'w', 1)
server.serve_forever()

推荐阅读