0

我有一个 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

我知道它可以工作,因为我让它在我的桌面上运行,但是我不确定为什么它可以在它上工作,而不是我的笔记本电脑。当它工作时,IDLE 上的读数是“在http://127.0.0.1:5000/上运行”,如果有人可以帮助我使用 Pythonw 进行这项工作,那就太好了。然而,它在技术上确实适用于普通的 python。

4

1 回答 1

0

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

于 2019-08-15T21:39:44.443 回答