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

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

ただいまの
回答率

90.12%

Tkinterでファイル参照を行おうとした時のエラー

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 673

B-Hirosuke

score 12

 前提・実現したいこと

現在、Tkinterでファイル参照ができるGUIアプリを作成しています。
このサイトを参考にしているのですが、なぜかエラーが発生してしまいます。

OSは、 macOS High Sierra 10.13.6  
開発環境は、 Python3.6.2(Anaconda3-5.0.0)  
を使用しています

Tkinterは、最近勉強し始めたばかりなので、全然わかりません。

よろしくお願いします。

 発生している問題・エラーメッセージ

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'File types array cannot be empty'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff2a8482db __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x00007fff519ebc76 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff2a8d9d7d +[NSException raise:format:] + 205
    3   AppKit                              0x00007fff2845b6e1 -[NSSavePanel setAllowedFileTypes:] + 154
    4   libtk8.6.dylib                      0x00000001098119f5 Tk_GetOpenFileObjCmd + 1941
    5   libtcl8.6.dylib                     0x00000001095c2616 Tcl_EvalObjv + 342
    6   _tkinter.cpython-36m-darwin.so      0x000000010706d5d2 Tkapp_Call + 210
    7   python                              0x00000001065b5ea2 PyCFunction_Call + 66
    8   python                              0x000000010668c046 _PyEval_EvalFrameDefault + 49702
    9   python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    10  python                              0x000000010668dcec fast_function + 348
    11  python                              0x000000010668d8de call_function + 222
    12  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    13  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    14  python                              0x000000010668dcec fast_function + 348
    15  python                              0x000000010668d8de call_function + 222
    16  python                              0x000000010668b622 _PyEval_EvalFrameDefault + 47106
    17  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    18  python                              0x0000000106679469 builtin_exec + 345
    19  python                              0x00000001065b64b8 _PyCFunction_FastCallDict + 200
    20  python                              0x000000010668d892 call_function + 146
    21  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    22  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    23  python                              0x000000010668dcec fast_function + 348
    24  python                              0x000000010668d8de call_function + 222
    25  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    26  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    27  python                              0x000000010668dcec fast_function + 348
    28  python                              0x000000010668d8de call_function + 222
    29  python                              0x000000010668b622 _PyEval_EvalFrameDefault + 47106
    30  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    31  python                              0x000000010668dcec fast_function + 348
    32  python                              0x000000010668d8de call_function + 222
    33  python                              0x000000010668b622 _PyEval_EvalFrameDefault + 47106
    34  python                              0x000000010668dc4f fast_function + 191
    35  python                              0x000000010668d8de call_function + 222
    36  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    37  python                              0x000000010668dc4f fast_function + 191
    38  python                              0x000000010668d8de call_function + 222
    39  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    40  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    41  python                              0x000000010657edf6 function_call + 118
    42  python                              0x000000010653bcde PyObject_Call + 62
    43  python                              0x000000010668b781 _PyEval_EvalFrameDefault + 47457
    44  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    45  python                              0x000000010668dcec fast_function + 348
    46  python                              0x000000010668d8de call_function + 222
    47  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    48  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    49  python                              0x000000010668dcec fast_function + 348
    50  python                              0x000000010668d8de call_function + 222
    51  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    52  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    53  python                              0x000000010668e433 _PyFunction_FastCallDict + 355
    54  python                              0x00000001065346b0 _PyObject_FastCallDict + 320
    55  python                              0x000000010655b9d8 method_call + 136
    56  python                              0x000000010653bcde PyObject_Call + 62
    57  python                              0x000000010668b781 _PyEval_EvalFrameDefault + 47457
    58  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    59  python                              0x000000010668dcec fast_function + 348
    60  python                              0x000000010668d8de call_function + 222
    61  python                              0x000000010668b572 _PyEval_EvalFrameDefault + 46930
    62  python                              0x000000010667ebeb _PyEval_EvalCodeWithName + 427
    63  python                              0x00000001066d7e1c PyRun_FileExFlags + 252
    64  python                              0x00000001066d75ce PyRun_SimpleFileExFlags + 366
    65  python                              0x00000001066fd456 Py_Main + 3718
    66  python                              0x000000010652c68d main + 509
    67  libdyld.dylib                       0x00007fff52605015 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6

 該当のソースコード

# モジュールのインポート
import os, tkinter, tkinter.filedialog, tkinter.messagebox

# ファイル選択ダイアログの表示
root = tkinter.Tk()
root.withdraw()
fTyp = [("","*")]
iDir = os.path.abspath(os.path.dirname(__file__))
tkinter.messagebox.showinfo('○×プログラム','処理ファイルを選択してください!')
file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)

# 処理ファイル名の出力
tkinter.messagebox.showinfo('○×プログラム',file)

 補足情報(FW/ツールのバージョンなど)

Tkinterのバージョン

>>> tkinter.TkVersion
8.6
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • hayataka2049

    2018/10/15 20:24

    開発環境は何ですか? また、プログラムはどのように実行していますか?

    キャンセル

  • B-Hirosuke

    2018/10/15 20:30

    すみません。書き忘れていました。編集で追加しました。ターミナルで python <ファイル名>.py で実行しています。

    キャンセル

  • hayataka2049

    2018/10/15 20:33

    なるほど、わかりました。エラーはそれがすべてですか? 他にもあれば、python ***.py以降に出るものをすべて掲載しておいてください

    キャンセル

  • B-Hirosuke

    2018/10/15 20:36

    追加しました。お願いします。

    キャンセル

回答 1

checkベストアンサー

+1

OSXとtkinterの組み合わせはタチの悪いバグでドハマりすることがあるようです。

Python - Pythonでtkinterに関数を用いたときのエラー(104984)|teratail


↓検索して出てきたもの。状況が似ている。質問文のコードだとfiletypes = fTypを消すと改善するかもしれません(ただし、しないかもしれません。あまり期待しないでください)。

libc++abi.dylib: terminating with uncaught exception of type NSException · Issue #5 · mortcanty/CRCPython · GitHub

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/15 20:53

    動きました。
    ありがとうございます。

    キャンセル

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

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る