2017-12-22 35 views
1

몇 년 동안 여러 대의 컴퓨터에서 잘 돌아가는 Python 코드가 있습니다. 나는 최근 python (같은 버전)을 설치하고 새 컴퓨터에 같은 코드를 업로드했습니다. 코드는 간단한 인쇄 명령을 시도 할 때 갑자기 오류가 발생할 때까지 며칠 동안 잘 실행됩니다. 인쇄 명령은 '지금까지 얻은 인쇄본'과 같이 파일이 아닌 주 콘솔로 인쇄하는 것입니다. 모든 인쇄 명령을 주석 처리 할 수 ​​있지만 그 QC 검사가 필요합니다.python print 명령으로 인해 I/O 오류가 발생합니다.

C:\X\halo1_rt_v6.5.py in halo_storeFile(halo1Config, product, spreftype,  dateTime, ending, height) 
    164   fnout_recent = halo1Config["LATEST"]+halo1Config["NAME"]+ "_" + product.upper()+"_"+dateTime+"-"+spreftype + ending 
    165   fdest = dst + fnout_time 
--> 166   print 'STORING: ',fdest, fnout_latest, fnout_recent 
    167  else: 
    168   fnout_time = halo1Config["NAME"] +"_" + product.upper()+ "-" + spreftype+"_"+dateTime+"_" +str(height) + '_m'+ ending 


C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.7.4.3348.win-x86_64\lib\site-packages\ipykernel\iostream.pyc in write(self, string) 
    315 
    316    is_child = (not self._is_master_process()) 
--> 317    self._buffer.write(string) 
    318    if is_child: 
    319     # newlines imply flush in subprocesses 

ValueError: I/O operation on closed file 

내 파이썬 버전 인 Enthought Canopy 또는 ipykernel에 문제가 있습니까? ipykernel을 업데이트하려고했습니다. 모든 코드는 간단한 문을 콘솔에 출력하므로 I/O 오류가 발생하는 이유를 알 수 없습니다 - 나는 어떤 파일에도 쓰지 않고 코드는 90 %의 시간 동안 잘 작동합니다! 도움

+0

Canopy를 통해이 스크립트를 실행하지 않는다고 가정합니까? 어떻게 문제가 될지 알 수 있습니다. – roganjosh

+0

문제가 무엇이든 문제가 발생하기를 기다리는 대신 동일한 방식으로 실행되고 테스트하는 작은 스크립트를 만드는 것이 더 좋을 것이라고 생각합니다. 게시 한 내용에서 여기서는 아무 것도 테스트 할 수 없지만 마지막 부분의 경로는 테스트 할 수 없습니다. 역 추적 ... 나는 그런 것을 보지 못했다. – roganjosh

+0

임의의 추측은 어디에도 미치지 않을 수도 있습니다. 가상 환경을 실행하고 있습니까? – roganjosh

답변

2

에 대한

덕분에 당신은 캐노피 GUI의 IPython 패널에서 코드를 실행하고 있습니까? 이것은 Jupyter/IPython Qtconsole으로, 2 프로세스 (커널 : 프론트 엔드) 아키텍처를 가지고 있으며 1 프로세스 아키텍처보다 취약합니다 (예 : 로컬 호스트에서 인쇄 명령문을 전달해야합니다.)

장기 실행 프로그램이라면 간단한 ipython 터미널 (canopy 명령 프롬프트에서 ipython으로 열었습니다)에서 실행하는 것이 더 튼튼 할 것입니다.

+0

Canopy없이 별도의 터미널에서 실행 해 볼 수 있습니다. 지금까지 Canopy와 관련된이 문제를 경험하지 못했습니다. 내가 제안한대로 cmd 또는 별도로 실행하는 것이 무엇인지 알려 드리겠습니다. – zemone