宣伝: 『「シミュレーション仏教」の試み』(JRF 著)。Amazon Kindle で販売中!
技術系電子本。Python による仏教社会シミュレーション( https://github.com/JRF-2018/simbd )の哲学的解説です。令和4年3月11日発売。

« 前のひとこと | トップページ | 次のひとこと »

cocolog:92875018

Windows の Python で signal.signal を使って Ctrl-C (SIGINT) でデバッガに入るような処理を書こうと思ったのだがうまくいかない。 (JRF 3444)

JRF 2021年7月13日 (火)

(「グローバル共有メモ」で書いたことのほぼコピペ。日本語でググっても良い情報がないので、こちらにも書いておく。)

JRF2021/7/139149

実は下記のようなエラーが出ているのだが、最初のころから出ていたため、これが普通だと思っていた。

JRF2021/7/133947

<pre>
forrtl: error (200): program aborting due to control-C event
Image PC Routine Line Source

libifcoremd.dll 00007FFFAD7D3B58 Unknown Unknown Unknown
(…)
QObject::~QObject: Timers cannot be stopped from another thread
</pre>

JRF2021/7/139603

このエラーで、ググると、Python 2.7系から scipy などにあるエラーらしい。私は Python 3.7 系でも直っておらずこのエラーが続いていた。

JRF2021/7/134043

《Ctrl-C crashes Python after importing scipy.stats - Stack Overflow》
https://stackoverflow.com/questions/15457786/ctrl-c-crashes-python-after-importing-scipy-stats

↑によって、

JRF2021/7/139074

<pre>
import os
os.environ['FOR_DISABLE_CONSOLE_CTRL_HANDLER'] = '1'
from scipy.stats import zscore
</pre>

JRF2021/7/131248

…となどとすることで解決した。scipy モジュールなどを読み込む前に os.environ[...] = '1' が必要なのがミソらしい。

JRF2021/7/139737

« 前のひとこと | トップページ | 次のひとこと »