python2.7出现IOError: [Errno 5] Input/output error
以下內(nèi)容經(jīng)過各路大神指點(diǎn),所以屬于轉(zhuǎn)載內(nèi)容:
你會(huì)發(fā)現(xiàn),出現(xiàn)這種報(bào)錯(cuò)的時(shí)候,一定是在print語句地方報(bào)這種錯(cuò)。
直接注釋掉就行了,但是有很多print就很麻煩了。
還有就是部署web的時(shí)候,比如哈,模塊A調(diào)用了模塊B,A是我們運(yùn)行的Flask,例如
我們使用python A.py &部署,隨后,我們又修改了B,但是沒有重新部署A,那么這個(gè)時(shí)候就很容易出現(xiàn)這種報(bào)錯(cuò)。
所以每次修改了B以后,A最好重新運(yùn)行部署下。
后來發(fā)現(xiàn):重新部署flask后,過一段時(shí)間還是會(huì)出現(xiàn)IO error
python app_modify.py &
改為:
python app8_modify.py > message.log &
或者
python app8_modify.py > /dev/null 2>&1 &
然后,不要直接關(guān)閉終端,而是輸入exit來關(guān)閉終端
據(jù)說這么搞的原因是,我們離線部署完終端以后,print語句沒地方輸出,就error了,所以改為重定向。
終端中出現(xiàn)killed是正常的。
部署flask web框架時(shí)可能遇到的問題有:
終端如果出現(xiàn)“Killed”,這個(gè)可能是以前關(guān)掉的進(jìn)程,盡管已經(jīng)關(guān)掉了,但是可能會(huì)在終端按下回車鍵以后“回顯”
如果終端出現(xiàn)“Exit 1”這個(gè)是不正常的,必須解決
另外的4種辦法是:
1、用notepad打開所有工程,把所有print全部替換成#print
2、
from __future__ import print_function def myprint(msg):pass print=myprint print("hehehehehe")此時(shí)print結(jié)果不會(huì)輸出到終端
3、
import sys class MC:def write(*_):pass sys.stdout=MC() a=5 print "a=",a此時(shí)print結(jié)果也不會(huì)輸出到終端
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_outtest2.py def a():print "sifjo"
test.py和test2.py兩個(gè)文件放在同一路徑下
就可以達(dá)到屏蔽test2.py中的輸出函數(shù)的效果
所以總結(jié)下,總共是2種shell 對(duì)print的重定向方法+1種notepad暴力替換法+3種python中的處理方法
參考鏈接:
http://blog.sina.com.cn/s/blog_4aae007d010192qc.html http://blog.csdn.net/vbaspdelphi/article/details/52347251
總結(jié)
以上是生活随笔為你收集整理的python2.7出现IOError: [Errno 5] Input/output error的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab矩阵及其基本运算—特征值分解
- 下一篇: ubuntu下面的SecureCRT破解