【python入門】djangoアプリ起動時のtkinterエラー
こんにちは
今回は4ヶ月前に作成したdjangoアプリケーションを久しぶりに起動したら
「ModuleNotFoundError: No module named '_tkinter'」
が出て起動できなかったのでその解消法を備忘録します。
------------------
macOS Mojave バージョン10.14.6
python 3.7.4
django 2.2.6
------------------
【結論】→pythonアンインストール・tcl-tkの場所指定して再インストール
■経緯
venvで作成した仮想環境下で
$ python3 manage.py runserver
→ModuleNotFoundError: No module named '_tkinter'エラー
■対応内容
1日かけて試しまくりました。
・ネットで検索してこちらを参考に
pythonアンインストール・tkinterダウンロード・python再インストール
stack flowで同じような質問に出会いました!
以下で解決しました。
・現在のpipリストを保存
$pip freeze > pip.txt
(心配なのでファイルがある確認してください)
・pythonアンインストール
$PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" pyenv install 3.7.4
※確認
>>> import _tkinter
→さっきまで出ていたエラーが出ない!
・pipをインストールします
$pip install -r pip.txt
当時2週間ほどで作った未完成サイトですが以前と同じく表示できました。
見せれるサイトではないですが初めて開発したサイトなので蘇って嬉しい😭
参考サイトさま
こちらの同じ状況の質問を参考に、下記のサイトのコマンドを打ち、解決。
https://github.com/pyenv/pyenv/issues/1375#issuecomment-533182043
■余談
どうやらmatplotlibを入れていたのが怪しいです。
開発していた当時は全く問題なく動作したのに、後になって苦労しました、、