.pyw程序在执行时崩溃,像正常的.py一样工作

时间:2019-08-15 21:28:23

标签: python flask pythonw

我有一个要运行的python程序,而不会弹出控制台。自然,我去了一个.pyw文件来隐藏控制台。但是我注意到将文件转换为.pyw文件后。它会在执行后立即崩溃。

我尝试卸载并重新安装python和Flask。我在Python IDLE中运行了该程序,终于能够读取错误。然后我查找了它,答案最终是“您必须在py中运行它”。但是,该文件在我的台​​式机上运行完全正常,但在设置为.pyw的笔记本电脑或其他尝试使用的其他设备上却无法正常运行。这是错误回溯:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
=========== RESTART: C:\Users\emidd\OneDrive\Desktop\FlaskApp.pyw ===========
Traceback (most recent call last):
  File "C:\Users\emidd\OneDrive\Desktop\FlaskApp.pyw", line 16, in <module>
    app.run()
  File "C:\Users\emidd\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\app.py", line 985, in run
    cli.show_server_banner(self.env, self.debug, self.name, False)
  File "C:\Users\emidd\AppData\Local\Programs\Python\Python37\lib\site-packages\flask\cli.py", line 670, in show_server_banner
    click.echo(message)
  File "C:\Users\emidd\AppData\Local\Programs\Python\Python37\lib\site-packages\click\utils.py", line 218, in echo
    file = _default_text_stdout()
  File "C:\Users\emidd\AppData\Local\Programs\Python\Python37\lib\site-packages\click\_compat.py", line 675, in func
    rv = wrapper_func()
  File "C:\Users\emidd\AppData\Local\Programs\Python\Python37\lib\site-packages\click\_compat.py", line 436, in get_text_stdout
    rv = _get_windows_console_stream(sys.stdout, encoding, errors)
  File "C:\Users\emidd\AppData\Local\Programs\Python\Python37\lib\site-packages\click\_winconsole.py", line 295, in _get_windows_console_stream
    func = _stream_factories.get(f.fileno())
io.UnsupportedOperation: fileno

我知道它可以工作,因为它可以在我的台式机上运行,​​但是我不确定为什么它可以在它上运行,但不能在我的笔记本电脑上运行。当它起作用时,如果有人可以帮助我使它与Pythonw一起使用,那IDLE上的读数将“在http://127.0.0.1:5000/上运行”,那会很棒。但是,从技术上讲,它可以使用普通的python。

1 个答案:

答案 0 :(得分:0)

尝试在命令行上运行它,IDLE有不同的IO对象,可能会使其混乱。