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