以下内容经过各路大神指点,所以属于转载内容:
你会发现,出现这种报错的时候,一定是在print语句地方报这种错。
直接注释掉就行了,但是有很多print就很麻烦了。
还有就是部署web的时候,比如哈,模块A调用了模块B,A是我们运行的Flask,例如
我们使用python A.py &部署,随后,我们又修改了B,但是没有重新部署A,那么这个时候就很容易出现这种报错。
所以每次修改了B以后,A最好重新运行部署下。
后来发现:重新部署flask后,过一段时间还是会出现IO error
python app_modify.py &
改为:
python app8_modify.py > message.log &
或者
python app8_modify.py > /dev/null 2>&1 &
然后,不要直接关闭终端,而是输入exit来关闭终端
据说这么搞的原因是,我们离线部署完终端以后,print语句没地方输出,就error了,所以改为重定向。
终端中出现killed是正常的。
部署flask web框架时可能遇到的问题有:
终端如果出现“Killed”,这个可能是以前关掉的进程,尽管已经关掉了,但是可能会在终端按下回车键以后“回显”
如果终端出现“Exit 1”这个是不正常的,必须解决
另外的4种办法是:
1、用notepad打开所有工程,把所有print全部替换成#print
2、
from __future__ import print_function
def myprint(msg):
pass
print=myprint
print("hehehehehe")
3、
import sys
class MC:
def write(*_):
pass
sys.stdout=MC()
a=5
print "a=",a
4、
test.py
import sys
sys_out = sys.stdout
sys.stdout = open('./test.txt', 'w+')
print '...'
from test2 import a
a()
sys.stdout.close()
sys.stdout = sys_out
def a():
print "sifjo"
test.py和test2.py两个文件放在同一路径下
就可以达到屏蔽test2.py中的输出函数的效果
所以总结下,总共是2种shell 对print的重定向方法+1种notepad暴力替换法+3种python中的处理方法
参考链接:
http://blog.sina.com.cn/s/blog_4aae007d010192qc.html
http://blog.csdn.net/vbaspdelphi/article/details/52347251