PyCharm CEでDjangoデバッグ時にisAliveエラーが出る原因と解決法【Python 3.13対応】

Djangoアプリを開発しているとき、PyCharmのデバッグ実行で突然下記エラーが出て止まってしまうことはありませんか?
今回初めて遭遇したので備忘録としてメモします。
AttributeError: '_MainThread' object has no attribute 'isAlive'. Did you mean: 'is_alive'?
Pycharm CEテスト/デバッグ周り
環境
pc:MacBook Pro(2019)
os:macos Sequoia
Python:3.13.1
PyCharm CE:2022.2.5
発生状況
Djangoプロジェクトを runserver
で実行しようとした際に発生
エラーの原因
エラーメッセージにある通り、isAlive
というメソッドが見つからないことが原因です。
Python 3.9以降 では threading.Thread.isAlive()
が削除され、代わりに is_alive()
が使われるようになっています。
古いバージョンのPyCharm CEでは、この変更に未対応な部分があり、最新Pythonと組み合わせるとエラーが発生するようです。
解決方法
今回は PyCharm自体をアップデートすること で解決しました。
(Pythonのバージョンを下げるなどでも改善できると思いますが今回はアップデートを採用)
以下手順です。
-
JetBrains Toolboxのインストール
JetBrains製品を簡単に管理できる公式ツール。
JetBrains Toolbox App から入手可能です。
(CEの旧リンクは見つからなかったためToolboxを利用) -
Toolbox経由でPyCharm CEを更新
- 旧バージョン: PyCharm CE 2022.2.5
- 新バージョン: PyCharm CE 2025.2.11
Toolboxを使うことで、CE版も含めて最新版にスムーズにアップデート可能です。
下記記事も参考にさせていただきました
isAlive の扱いの変遷
-
Python 3.8 以前
threading.Thread.isAlive() が正規に存在 -
Python 3.9〜3.12
isAlive() は 非推奨(Deprecated)。
呼ぶと DeprecationWarning が出るが、まだ動く(内部的に is_alive() に転送)。 -
Python 3.13
isAlive() が 完全削除。呼ぶと AttributeError。
まとめ
- Python 3.9以降では
isAlive()
が廃止され、is_alive()
に変更された - 古いPyCharm CEでは未対応のためエラーが発生
- JetBrains Toolboxを使ってPyCharm CEを最新版にアップデートすれば解決
- 最新版のPyCharm CEはUIも結構変わっていて旧varより使いやすくなっていました