2020年に開発し2021年に運用した、Pythonのプログラムは、何度も書いていますがPython 3.6で動作していました。
ajya.hatenablog.jp
2022年の運用では、Ubuntu 20.04 LTSに最初から導入されているPython 3.8か、最新のPython 3.10で動作させる予定で試して、ワーニングが解消できました
ajya.hatenablog.jp
ワーニングが解消できたので、もうこれで大丈夫だろうと動作確認を進めたら、エラーが発生しました。
Photo by Alex Chumak on Unsplash
エラーは、
'Thread' object has no attribute 'isAlive'
と表示されました。
スレッドオブジェクトにisAliveがないという意味と解釈し、Python 3.10のスレッドのマニュアルを見ると、isAliveメソッドはなく、is_aliveメソッドがあります。
docs.python.org
Python 3.6のスレッドのマニュアルを見ても、isAliveメソッドはなく、is_aliveメソッドがあります。
docs.python.org
なぜテスト環境はPython 3.6なのに大丈夫なんだ?と悩んで、検索をすると、Python 3.9でisAliveメソッドが削除されたとわかりました。
bugs.python.org
Python 2.7のマニュアルでは、isAliveメソッドとis_aliveメソッドの両方が書かれています。
docs.python.org
ここまで確認できたので、isAliveメソッドをis_aliveメソッドに書き換えても同一の動作をすると確信できました。
Python 3.8で動作させていれば、setDeamonメソッドのワーニングと同様に、ワーニングが表示されて気づけたのでしょうか。