質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

587閲覧

matplotlibとseabornの原因不明のクラッシュ

1000nen

総合スコア10

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/23 14:28

matplotlib,seabornをクラッシュせずimportしたい

python3でarduinoと通信してセンサーデータを収集するプログラムを作っています。
そこで収集したデータの確認のためseabornのヒートマップを作るモジュールを作成しました。モジュール単体では無事に動きましたが、メインのGUIプログラムにimportしたところ以下のようなエラーが出ました。
環境はOS MAC10.14.1
python 3.7.0
numpy 1.15.4
pandas 0.23.4
matplotlib 3.0.2
seaborn 0.9.0

エラーメッセージ

❯ python3 main-gui.py 2018-11-23 22:49:25.108 Python[24511:2411757] -[NSApplication _setup:]: unrecognized selector sent to instance 0x7ff05ea8dcf0 2018-11-23 22:49:25.110 Python[24511:2411757] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication _setup:]: unrecognized selector sent to instance 0x7ff05ea8dcf0' *** First throw call stack: ( 0 CoreFoundation 0x00007fff2dc1fe65 __exceptionPreprocess + 256 1 libobjc.A.dylib 0x00007fff59c7b720 objc_exception_throw + 48 2 CoreFoundation 0x00007fff2dc9d22d -[NSObject(NSObject) __retain_OA] + 0 3 CoreFoundation 0x00007fff2dbc1820 ___forwarding___ + 1486 4 CoreFoundation 0x00007fff2dbc11c8 _CF_forwarding_prep_0 + 120 5 libtk8.6.dylib 0x0000000107dbf1f2 TkpInit + 408 6 libtk8.6.dylib 0x0000000107d2eaac Initialize + 2454 7 _tkinter.cpython-37m-darwin.so 0x0000000107b90dc4 Tcl_AppInit + 84 8 _tkinter.cpython-37m-darwin.so 0x0000000107b90a98 _tkinter_create + 1144 9 Python 0x000000010750584e _PyMethodDef_RawFastCallKeywords + 430 10 Python 0x0000000107504dba _PyCFunction_FastCallKeywords + 42 11 Python 0x00000001075c45ae call_function + 782 12 Python 0x00000001075c1560 _PyEval_EvalFrameDefault + 25152 13 Python 0x00000001075c5096 _PyEval_EvalCodeWithName + 2422 14 Python 0x000000010750495b _PyFunction_FastCallDict + 523 15 Python 0x0000000107505c2f _PyObject_Call_Prepend + 143 16 Python 0x00000001075540f1 slot_tp_init + 145 17 Python 0x000000010754fa69 type_call + 297 18 Python 0x0000000107504bd1 _PyObject_FastCallKeywords + 433 19 Python 0x00000001075c4492 call_function + 498 20 Python 0x00000001075c1560 _PyEval_EvalFrameDefault + 25152 21 Python 0x00000001075c5096 _PyEval_EvalCodeWithName + 2422 22 Python 0x00000001075bb244 PyEval_EvalCode + 100 23 Python 0x00000001075f8041 PyRun_FileExFlags + 209 24 Python 0x00000001075f78eb PyRun_SimpleFileExFlags + 859 25 Python 0x000000010761593c pymain_main + 8044 26 Python 0x0000000107615da1 _Py_UnixMain + 129 27 libdyld.dylib 0x00007fff5ad4a08d start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException [1] 24511 abort python3 main-gui.py

main-gui.py

python3

1#!/usr/bin/env python 2# -*- coding: utf8 -*- 3# import sys 4import tkinter as tk 5import tkinter.filedialog 6import os 7import datetime 8import serial 9import re 10# import csv 11 12# オリジナルライブラリ 13import form_csv 14from makeheat import make_6heatmap 15 16root = tk.Tk() 17root.title(u"Aruduino control") 18# root.geometry("300x600+1000+10") 19 20 21# ser = serial.Serial('/dev/tty.usbmodem14201', 9600) 22# 23# ボタンが押されるとここが呼び出される 24# 25def from_aruduino(ser): 26 u"""Cap str from arduino.""" 27 log = '' 28 while True: 29 line = ser.readline() 30 # print(line.decode()) 31 log += line.decode() 32 pattern = r"> " 33 if re.match(pattern, line.decode()): 34 # print("match!!") 35 return log 36 37 38def to_arduino(ser, word): 39 u"""Transport to arduino with serial.""" 40 ser.write(bytes(word, 'utf-8')) 41 return from_aruduino(ser) 42434445長いので略 46474849

試したこと

コメントアウトでエラー箇所を絞るとmakeheat.pyのimportの時点でクラッシュしており、その原因としてmatplotlibとseabornの二つのモジュールでした。
この二つのモジュールはグラフを作るため不可欠であり、単体で動いたことからmain-gui.pyに何かしら問題があると思います。何かしら心当たりのある方はよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

mac+tkinter環境特有の問題にハマったのかもしれません。その場合、環境の再構築が必要になる可能性があります。

Python - Pythonでtkinterに関数を用いたときのエラー|teratail
python - NSException with Tkinter on mac - Stack Overflow

投稿2018/11/25 14:59

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1000nen

2018/11/26 14:54

情報ありがとうございます。ご指摘の通りMAC上で動作しなかったプログラムでしたが確かにwindowsでは動作いたしました。 下のリンク中にあるpython公式の情報を見てみましたがTkに不具合があり推奨しないなどの記述があるのは8.5.7などで自分の環境の8.6には特に記述がなかったと思います。 上のリンクでは環境を再構築することで不具合が解消したとのことなので自分も試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問