2017-11-07 5 views
0

私はプールにスティングを送りつづけ、後でプールを閉じたりプールに参加しようとしています。multiprocessing.pool.Pool文字列オブジェクトに戻す

import multiprocessing 

num_of_p = 5 
_pool = multiprocessing.Pool(num_of_p) 
pool_string = str(_pool) 

multiprocessing.pool.Pool objectに戻すpool_stringを有効にする方法はあります:ここで私がやっている複製する方法の例ですか?

+1

ない可能:

たぶん、あなたは自分の実際の_poolへの別の参照を作りたいです。なぜこの文字列を最初に構築していますか? – user2357112

+0

フラスコを使ってWebツールを作成していますが、ツールがページのdomに実行中に何が起こっているかに関する情報が流れます。実行の最後に、私はジェネレータを使用して印刷ステートメントのストリームを返すので、プールを閉じる/参加する良い方法を見つけることができませんでした。だから、私はプールの文字列のqoutedバージョンを渡すアプリの新しい場所に実行の最後にDOMにリダイレクトをストリームします。希望は、exec()などを使用して文字列から戻すことができるということでした。ああ、もちろん、それは動作しませんでした。 –

+0

私はこれを実行のuuidに基づいてすべてのプールを扱うグローバルに置き換えましたが、可能であれば興味がありました。 –

答えて

1

多分、あなたはPythonの動的型付けに誤解を抱いているかもしれません。スクリプトの最初から最後までいた

>>> pool_string 
'<multiprocessing.pool.Pool object at 0x000001F8495BCC18>' 
>>> dir(_pool)[26] 
'__str__' 
>>> _pool.__str__() 
'<multiprocessing.pool.Pool object at 0x000001F8495BCC18>' 

と文字列:まず

pool_stringはクラスあなたはちょうどその__str__法と呼ばれているmultiprocessing.pool.Pool

の対象ではなかったです。

_pool2 = _pool 
+0

ご協力いただきありがとうございます。 –

+0

あなたのFlask Webツールについてのあなたのコメントを読んで、私はあなたがそのプールの状態を転送したいと思うが、この問題で遭遇したと思われる 'NotImplementedError:プールオブジェクトはプロセス間で渡すことはできないか、本当にあなたを助けることができます。 –