本当に初心者なのですが調べれば調べるほど分からなくなっていったので質問させていただきます。
pythonを使うためにHomebrewインストール→pyenvインストール→python3.8.0インストールしました。
よく分からないけどanacondaもインストールしました。
VisualStudioCodeで書いているとIf this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinterと表示されてしまいます。数時間調べていろいろ試したのですが解決しませんでした。質問は2つです。①この問題の解決策を教えてもらいたい②僕のpythonのインストールのやり方で間違っているところはないか、またpythonはどのバージョンをインストールすべきか
急にこのエラーが出たので絶望しています。馬鹿な質問をしているかもしれませんが、よろしければご教授ください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
この問題の解決策
homebrewでインストールしたpyenvのバージョンが古い
古いバージョンのpyenvでは互換性に問題があるようです。アップグレードしてみて下さい。
brew upgrade pyenv pyenv rehash pyenv install 3.8.0
直らない場合
エラーがNo module named '_tkinter
ですので、pythonのモジュール検索パスに_tkinter.*.so
が存在しないことが原因です。すなわち
- モジュール検索パスが間違っている
- モジュール検索パスは正常だが何らかの理由で
_tkinter.*.so
がない
第一にAnacondaとpyenvの設定の衝突が考えられます。$HOME/.bash_profile
にあるAnaconda関連の設定を全て削除して下さい。その後ターミナルの再起動を行って下さい。
モジュール検索パスの確認方法
いろいろと試したとありますので、他にも不適切な設定が含まれているかも知れません(export PYTHONPATHで始まる行があるなど)。その場合、モジュール検索パスを確認した方が良いでしょう。次のコマンドでモジュール検索パスを確認することができます。
shell
1python -c 'import sys; print(sys.path)'
検索パスがリストで表示されますので、この中のどれかに_tkinter.*.so
と言うダイナミックリンクライブラリ用のファイルがあること確認して下さい。私のmacOSでは下記のファイルがありました(pyenvではなくanyenvを使っているのは私の趣味です)。
$HOME/.anyenv/envs/pyenv/versions/3.8.0/lib/python3.8/lib-dynload/_tkinter.cpython-38-darwin.so
VSCodeで呼び出しているpythonが異なる
上記を行なってもなお動かない場合、pythonは正しくインストールされているのにVSCodeで呼び出しているpythonが全く別のpythonを呼び出している可能性があります。その場合はPython: Select Interpreterでpyenvでインストールしたpythonを設定して下さい。
pythonのインストールのやり方
初心者の方にはpyenvとAnacondaの共存は難しいです。どちらかにしましょう。pythonのバージョンをどれにするかは難しい問題です。参考にしている教材があれば同じバージョンを使用するのが良いです。異なるプログラムで異なるバージョン・パッケージを使うことは普通ですのでpipenv等を使って環境を分けるのが良いでしょう。
投稿2020/06/09 12:43
総合スコア1615
0
ベストアンサー
「pyenvのpythonでtkinterを使用する方法」を参考にして
以下のコンパイルオプション
--with-tcltk-includes
--with-tcltk-libs
それぞれにtcl-tkを指定して、pyenvでpythonをインストールしてください。
tkinterが使えるpythonができます。
投稿2020/06/10 01:39
総合スコア7337
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/10 02:59
2020/06/10 10:29
2020/06/10 10:50
2020/06/10 21:59
0
If this fails your Python may not be configured for Tk
pyenvでインストールしたpythonでtkinterが動かない原因はこれです。
とりあえず参考になりそうなサイトを挙げておきます。
pyenvのpythonでtkinterを使用する方法
まずはhomebrewでtcl-tkをインストールしてから始めてください。
pyenvでインストールするときは/usr/local/bin/python-buildコマンドでpythonがビルド
されます。
そのときincludeとlibにtcl-tkの指定が必要なのです。
投稿2020/06/09 15:26
編集2020/06/09 15:31総合スコア7337
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
①この問題の解決策を教えてもらいたい
VisualStudioCodeはあまり使ってないので、直接回答ではありませんが、
- pyenvのpythonでtkinterを使用する方法 等を参考に、解決策を試してみるとどうですか
追加で、VisualStudioCode側の設定も必要かもしれません。環境変数等。
- もしくは、VisualStudioCode の実行時の設定で他のpythonを選択はできないでしょうか?
②僕のpythonのインストールのやり方で間違っているところはないか、
間違いではありませんが、
pyenvは標準ではなく、追加で設定が必要、位の認識でいます。
最初に挑戦するには、少し無駄にハードルが上がっている側面もあるので、
もし必要だとしても、後々 pyenv の利用を検討するで良いかな。
敢えて指摘するなら、環境構築ができないうちに複数の環境をインストールするのは、
他のバージョンの設定が影響する等の可能性もあるので、悪手だと思います。
またpythonはどのバージョンをインストールすべきか
まずは、公式サイトの新しい安定バージョンでの環境構築をしてみましょう。
参考にされてる書籍等で指定のバージョンがあれば、同じバージョンが良いことも有ります。
(古い情報でないかを確認。大雑把に2.7系か 3.x系かの確認位で良いと思います)
投稿2020/06/09 10:53
総合スコア8760
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/09 13:14
2020/06/09 14:04
2020/06/09 14:33
2020/06/09 14:43
2020/06/09 14:59 編集
2020/06/09 16:17
2020/06/09 22:29 編集
2020/06/09 22:59
2020/06/10 00:42 編集
2020/06/10 00:23
2020/06/10 00:43
2020/06/10 03:32
2020/06/10 10:32
2020/06/10 13:40