前提・実現したいこと
pythonを学習しているのですが、vscodeでimport matplotlibをすると以下のエラーメッセージが出てきます。こちらを解決したいのですが、方法が具体的にわかりません。
発生している問題・エラーメッセージ
ModuleNotFoundError: No module named '_tkinter'//旧エラー RuntimeError: tk.h version (8.6) doesn't match libtk.a version (8.5)//現エラー
該当のソースコード
python
1# -*- coding: utf-8 -*- 2import numpy as np 3import pandas as pd 4import matplotlib.pyplot as plt 5 6# 現在時刻から200日分のdatetimeインデックスを作成 7x = pd.period_range(pd.datetime.now(), periods=200, freq='d') 8x = x.to_timestamp().to_pydatetime() 9# ランダム値配列を3列200行分作成し、各列毎に累積和を求める 10y = np.random.randn(200, 3).cumsum(0) 11 12plots = plt.plot(x, y) 13plt.legend(plots, ('data1', 'data2', 'data3'), # 3つのプロットラベルの設定 14 loc='best', # 線が隠れない位置の指定 15 framealpha=0.25, # 凡例の透明度 16 prop={'size': 'small', 'family': 'monospace'}) # 凡例のfontプロパティ 17 18plt.title('Random Data Graph') # タイトル名 19plt.xlabel('Date') # 横軸のラベル名 20plt.ylabel('Cum. sum') # 縦軸のラベル名 21plt.grid(True) # 目盛の表示 22plt.tight_layout() # 全てのプロット要素を図ボックスに収める 23 24# 描画実行 25plt.show()
試したこと
・ModuleNotFoundError: No module named '_tkinter'
・vscode
・macOS
などで色々調べました。
vscodeでグラフ作成したいのですが、どうもうまくいかなくて、jupyterはでは当のソースコードで正しくグラフ作成可能なのですが、vscodeではうまく行きません。
Tcl/Tkを使う方法など色々調べたのですが、
https://www.python.org/download/mac/tcltk/#built-in-8-6-8
のサイトをみてダウンロードはしたものの、うまくいっていません。
https://qiita.com/kaizen_nagoya/items/0bebb8e5a757a7d1b9f2
補足情報(FW/ツールのバージョンなど)
python3.7.1 macOSver10.14 Mojave vscode
旧python3.6.6から現3.7.1にバージョンアップしましたところ、エラー内容が変わりましたので、編集しました。
環境を構築した手順などを詳細に記載してください
https://qiita.com/yoshizaki_kkgk/items/4663148a2b3ca078ddbc
このサイトをみて環境構築をしました。jupyterをインストールするところまでしました。
未確認ですが、python3本体のインストールの際にbrew uninstall python3 --with-tcl-tkとかすると入るのかもしれません。ただ、それをやるためには一回ぜんぶアンインストールして最初からやり直す必要があると思うので、どうしてもtkinterを使いたいのでなければ私の回答の方法で回避するのも手です。
現エラーが解消できない場合は、hayatakaさんの記載したpyQt5を使っていきたいなと思います。
あと少し、お力添えください。
自分なりに工夫した結果、エラー内容が変わりましたので、修正をくわえさせていただきました。
macだとデフォルトで入っているtcl/tkのバージョンが古くて(8.5)云々みたいな話をこのサイトでもたまに見かけるので、それ絡みのエラーですかね。tcl/tkを適切にアップグレードした上でpythonを再インストールする、みたいな手順が必要になるはず。ただ、私はmacユーザではないので、基本的にお力添えできません。悪しからず。
最終的にpyQt5を使うことにしまして、しっかりグラフ作成できましたので、満足しています。
どうもありがとうございました。
回答1件
あなたの回答
tips
プレビュー