2013-02-21 116 views
2

我正在Flask中编写一个应用程序,它由两个文件app.pytags.py组成。 app.py进口tags.py,其中又包含from eyed3 import loadEyed3是一个用于从文件中提取mp3标签的Python模块。出于某种原因,Eyed3的导入会禁止Flask的控制台输出。通常在启动烧瓶时使用python app.py返回:导入某些模块会禁止Flask控制台输出

* Running on http://127.0.0.1:17000/ 

当Eyed3导入时,此行不会出现。无关紧要,无论是import eyed3还是from eyed3 import load,或者导入是否在app.pytags.py或Flask的调试模式开启/关闭。我甚至尝试了导入后或app.run(),没有成功之前运行

import sys 
sys.stdout = sys.__stdout__ 
sys.stderr = sys.__stderr__ 

。为什么以及如何导入模块隐藏控制台输出?我怎样才能恢复它?

编辑:导入顺序无关紧要。没有任何反应,如果我在Flask之前导入Eyed3,错误仍然存​​在。它是否与this line of code有关?

+0

这是奇怪的不是它。我可以用最少的代码复制它,只是为了向你保证你不是你自己的。 sys.stdout在app.run()之前看起来很理智,据我所知,并且通过在导入时执行的代码不会揭示冒犯者 – DazWorrall 2013-02-21 11:59:43

+0

如果在导入Flask之前导入eyed3 *,会发生什么? – 2013-02-22 03:30:20

回答