我正在Flask中编写一个应用程序,它由两个文件app.py
和tags.py
组成。 app.py
进口tags.py
,其中又包含from eyed3 import load
。 Eyed3是一个用于从文件中提取mp3标签的Python模块。出于某种原因,Eyed3的导入会禁止Flask的控制台输出。通常在启动烧瓶时使用python app.py
返回:导入某些模块会禁止Flask控制台输出
* Running on http://127.0.0.1:17000/
当Eyed3导入时,此行不会出现。无关紧要,无论是import eyed3
还是from eyed3 import load
,或者导入是否在app.py
或tags.py
或Flask的调试模式开启/关闭。我甚至尝试了导入后或app.run()
,没有成功之前运行
import sys
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
。为什么以及如何导入模块隐藏控制台输出?我怎样才能恢复它?
编辑:导入顺序无关紧要。没有任何反应,如果我在Flask之前导入Eyed3,错误仍然存在。它是否与this line of code有关?
这是奇怪的不是它。我可以用最少的代码复制它,只是为了向你保证你不是你自己的。 sys.stdout在app.run()之前看起来很理智,据我所知,并且通过在导入时执行的代码不会揭示冒犯者 – DazWorrall 2013-02-21 11:59:43
如果在导入Flask之前导入eyed3 *,会发生什么? – 2013-02-22 03:30:20