首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.pyw和pythonw不能在Windows7下运行

.pyw和pythonw不能在Windows7下运行
EN

Stack Overflow用户
提问于 2014-07-19 07:23:30
回答 6查看 16.2K关注 0票数 26

运行一个简单的.py或.pyw python文件会导致python.exe显示在任务管理器下。

代码语言:javascript
复制
python myApp.py
python myApp.pyw

但是,当我们尝试在不使用控制台的情况下运行它时,脚本不会显示为正在运行,python.exepythonw.exe也不会出现在任务管理器下

代码语言:javascript
复制
pythonw myApp.pyw
pythonw myApp.py

我们如何解决这个问题?系统运行的是Python2.7.8 x64。

EN

回答 6

Stack Overflow用户

发布于 2014-07-19 10:37:03

尝试在myApp.py的开头添加import sys; sys.stderr = open("errlog.txt", "w")行。然后在errlog.txt中查找回溯或任何其他错误消息。

票数 5
EN

Stack Overflow用户

发布于 2014-10-02 03:02:48

我在自己的脚本中遇到了同样的问题,并发现当添加Ross答案的输出时,脚本实际上会运行。

由于某些原因,重定向输出似乎解决了这个问题。因为我对将输出写到磁盘不感兴趣,所以我用以下命令将其写到/dev/null (或相当于平台的东西):

代码语言:javascript
复制
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)之前做这件事是很重要的。

票数 2
EN

Stack Overflow用户

发布于 2015-01-28 02:05:51

我也有类似的问题。

通过写入日志文件一步一步地调试之后,我发现在尝试使用调用sys.stdout.write()的语句之后,pythonw.exe崩溃了。结果是,当使用pythonw.exe运行时,sys.stdout是None。

如果您正在使用sys.stdout/stderr/stdin的函数,并且打算将您的程序与pythonw.exe一起使用,那么添加对"None“的检查是一个好主意。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24835155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档