2022年6月26日日曜日

post_main()プロセスの分離

 PythonのC API上の問題らしいのですが、PythonInterpreterを2回呼ぶ場合問題があるらしいです。実際、下で述べられている現象と似たような事態は、大きなモジュールPywin32を導入時に経験しました。

Python C API error restarting interpreter - Stack Overflow

あれこれ対策してみたのですが、どうしても対策できなくて2回呼ぶのを諦めました。正確には、同じプロセスで2回呼ぶのをではなく、プロセスを2回用意して各1回づつ呼ぶ仕様に変更しました。プロセスが別であれば、Python側のメモリも新しいメモリになり、Python2回問題を回避できます。幸い、一回目は、制約論理生成用、2回目は、post_main() 出力データの整形用、と明確に用途が分かれています。制約論理生成と、出力データ整形は、全く別物であり独立化出来ます。なのでプロセスを分離してもなんら問題を生じません。



0 件のコメント:

コメントを投稿