2017-12-22 26 views
1

私はいくつかのコンピュータで数年間動作しているPythonコードを持っています。私は最近python(同じバージョン)をインストールし、新しいコンピュータに同じコードをアップロードしました。単純な印刷コマンドを実行しようとすると突然エラーが発生するまで、コードは数日間正常に実行されます。印刷コマンドは、「これまでに印刷されたものを印刷しました」というような、QCではなく、メインコンソールに印刷することです。私はすべての印刷コマンドをコメントすることができますが、私はそれらの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 

私のPythonバージョンEnthought Canopy、またはipykernelに問題がありますか? ipykernelを更新しようとしました。すべてのコードはコンソールに簡単な文を出力するので、I/Oエラーが発生する理由はわかりません - 私はどのファイルにも書き込んでいないので、コードは時間の90%でうまく動作します!ヘルプ

+0

Canopy自体でこのスクリプトを実行していないと思いますか? – roganjosh

+0

問題が何であっても、同じように実行され、そこからテストする小さなスクリプトを作成する方が、問題が発生するまでの年月を待つのではなく、よりよいと思います。あなたが投稿したものから何かをテストすることはできませんが、最後の部分のパスはテストできません。トレースバック...私はそれのようなものを見たことがない。 – roganjosh

+0

ランダムな推測でどこにも導かれないかもしれませんが、仮想環境を実行していますか? – roganjosh

答えて

2

ため

おかげで、あなたはキャノピーGUIのIPythonパネルでコードを実行していますか?これはJupyter/IPythonのQtconsoleであり、2プロセス(カーネル:フロントエンド)アーキテクチャを持ち、1プロセスアーキテクチャよりも脆弱です(例えば、ローカルホスト上でprintステートメントを伝える必要があります)。

長時間実行しているプログラムであれば、単純なipython端末(キャノピーコマンドプロンプトからipythonで開かれたもの)で実行する方がより堅牢です。

+0

Canopyを使わずに別の端末で実行することもできます。今までCanopyに関連するこの問題を経験していないのは奇妙なことです。私は、あなたが示唆したように、それを別々にcmdで動かすことの何が来るのかを知らせます。 – zemone

関連する問題