Он вылетает, когда файл firelog tkinter вызывается из Kivy на Mac - PullRequest
0 голосов
/ 17 июня 2020

Я написал следующий код:

openFileDialog.py

#-*- coding: utf-8 -*-

from kivy.lang import Builder
Builder.load_string("""
<TestWidget>:
    BoxLayout:
        orientation: 'vertical'
        size: root.size

        Button:
            id: button1
            text: "open dialog"
            font_size: 48
            on_press: root.buttonClicked()
""")

from kivy.app import App
from kivy.uix.widget import Widget

class TestWidget(Widget):
    def __init__(self, **kwargs):
        super(TestWidget, self).__init__(**kwargs)

    def buttonClicked(self):
        import tkinter
        from tkinter import filedialog

        root = tkinter.Tk()
        root.withdraw()

        dock = ""
        dock = "/Users/mac/Desktop"

        typ = [('text file','*.txt')] 
        filePath = filedialog.askopenfilename(filetypes = typ, initialdir = dock)
        print(filePath)

class TestApp(App):
    def __init__(self, **kwargs):
        super(TestApp, self).__init__(**kwargs)

    def build(self):
        return TestWidget()

if __name__ == '__main__':
    TestApp().run()

Когда я запускал этот код (openFileDialog.py) на Ma c, Kivy разбился, не открывая диалоговое окно файла, и напечатал следующую ошибку:

2020-06-17 16:56:59.549 python[1319:35013] -[SDLApplication _setup:]: unrecognized selector sent to instance 0x7f85b168beb0

2020-06-17 16:56:59.577 python[1319:35013] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SDLApplication _setup:]: unrecognized selector sent to instance 0x7f85b168beb0'

*** First throw call stack:

(

    0   CoreFoundation                      0x00007fff317a6ab1 __exceptionPreprocess + 256

    1   libobjc.A.dylib                     0x00007fff5bf513c6 objc_exception_throw + 48

    2   CoreFoundation                      0x00007fff3182129a -[NSObject(NSObject) __retain_OA] + 0

    3   CoreFoundation                      0x00007fff31748588 ___forwarding___ + 1478

    4   CoreFoundation                      0x00007fff31747f38 _CF_forwarding_prep_0 + 120

    5   libtk8.6.dylib                      0x000000010ef9031d TkpInit + 413

    6   libtk8.6.dylib                      0x000000010eee817e Initialize + 2622

    7   _tkinter.cpython-37m-darwin.so      0x000000010ed10a0f _tkinter_create + 1183

    8   python                              0x0000000106355756 _PyMethodDef_RawFastCallKeywords + 230

    9   python                              0x0000000106491c82 call_function + 306

    10  python                              0x000000010648ea36 _PyEval_EvalFrameDefault + 42246

    11  python                              0x00000001064832ee _PyEval_EvalCodeWithName + 414

    12  python                              0x00000001063543e7 _PyFunction_FastCallDict + 231

    13  python                              0x00000001063d6591 slot_tp_init + 193

    14  python                              0x00000001063e0691 type_call + 241

    15  python                              0x0000000106355113 _PyObject_FastCallKeywords + 179

    16  python                              0x0000000106491d15 call_function + 453

    17  python                              0x000000010648ea36 _PyEval_EvalFrameDefault + 42246

    18  python                              0x0000000106354ef5 function_code_fastcall + 117

    19  python                              0x0000000106491c07 call_function + 183

    20  python                              0x000000010648ea36 _PyEval_EvalFrameDefault + 42246

    21  python                              0x00000001064832ee _PyEval_EvalCodeWithName + 414

    22  python                              0x000000010647dd1b builtin_exec + 347

    23  python                              0x0000000106355756 _PyMethodDef_RawFastCallKeywords + 230

    24  python                              0x0000000106491c82 call_function + 306

    25  python                              0x000000010648f978 _PyEval_EvalFrameDefault + 46152

    26  python                              0x00000001064832ee _PyEval_EvalCodeWithName + 414

    27  python                              0x00000001063543e7 _PyFunction_FastCallDict + 231

    28  _event.cpython-37m-darwin.so        0x0000000107236dc1 __Pyx_PyObject_Call + 97

    29  _event.cpython-37m-darwin.so        0x000000010723aadf __pyx_f_4kivy_6_event_14EventObservers__dispatch + 543

    30  _event.cpython-37m-darwin.so        0x000000010723bf95 __pyx_f_4kivy_6_event_14EventObservers_dispatch + 581

    31  _event.cpython-37m-darwin.so        0x000000010724bc9f __pyx_pw_4kivy_6_event_15EventDispatcher_25dispatch + 1023

    32  python                              0x00000001063557f8 _PyMethodDef_RawFastCallKeywords + 392

    33  python                              0x0000000106362144 _PyMethodDescr_FastCallKeywords + 84

    34  python                              0x0000000106491d05 call_function + 437

    35  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    36  python                              0x00000001064832ee _PyEval_EvalCodeWithName + 414

    37  python                              0x00000001063543e7 _PyFunction_FastCallDict + 231

    38  python                              0x0000000106358312 method_call + 130

    39  _event.cpython-37m-darwin.so        0x0000000107236dc1 __Pyx_PyObject_Call + 97

    40  _event.cpython-37m-darwin.so        0x000000010724bd0c __pyx_pw_4kivy_6_event_15EventDispatcher_25dispatch + 1132

    41  python                              0x00000001063557f8 _PyMethodDef_RawFastCallKeywords + 392

    42  python                              0x0000000106362144 _PyMethodDescr_FastCallKeywords + 84

    43  python                              0x0000000106491d05 call_function + 437

    44  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    45  python                              0x0000000106354ef5 function_code_fastcall + 117

    46  python                              0x0000000106358312 method_call + 130

    47  _event.cpython-37m-darwin.so        0x0000000107236dc1 __Pyx_PyObject_Call + 97

    48  _event.cpython-37m-darwin.so        0x000000010724bd0c __pyx_pw_4kivy_6_event_15EventDispatcher_25dispatch + 1132

    49  python                              0x00000001063557f8 _PyMethodDef_RawFastCallKeywords + 392

    50  python                              0x0000000106362144 _PyMethodDescr_FastCallKeywords + 84

    51  python                              0x0000000106491d05 call_function + 437

    52  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    53  python                              0x0000000106354ef5 function_code_fastcall + 117

    54  python                              0x0000000106358312 method_call + 130

    55  _event.cpython-37m-darwin.so        0x0000000107236dc1 __Pyx_PyObject_Call + 97

    56  _event.cpython-37m-darwin.so        0x000000010724bd0c __pyx_pw_4kivy_6_event_15EventDispatcher_25dispatch + 1132

    57  python                              0x00000001063557f8 _PyMethodDef_RawFastCallKeywords + 392

    58  python                              0x0000000106362144 _PyMethodDescr_FastCallKeywords + 84

    59  python                              0x0000000106491d05 call_function + 437

    60  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    61  python                              0x0000000106354ef5 function_code_fastcall + 117

    62  python                              0x0000000106358312 method_call + 130

    63  _event.cpython-37m-darwin.so        0x0000000107236dc1 __Pyx_PyObject_Call + 97

    64  _event.cpython-37m-darwin.so        0x000000010724bd0c __pyx_pw_4kivy_6_event_15EventDispatcher_25dispatch + 1132

    65  python                              0x00000001063557f8 _PyMethodDef_RawFastCallKeywords + 392

    66  python                              0x0000000106362144 _PyMethodDescr_FastCallKeywords + 84

    67  python                              0x0000000106491d05 call_function + 437

    68  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    69  python                              0x0000000106354ef5 function_code_fastcall + 117

    70  python                              0x0000000106358312 method_call + 130

    71  _event.cpython-37m-darwin.so        0x0000000107236dc1 __Pyx_PyObject_Call + 97

    72  _event.cpython-37m-darwin.so        0x000000010724bd0c __pyx_pw_4kivy_6_event_15EventDispatcher_25dispatch + 1132

    73  python                              0x00000001063557f8 _PyMethodDef_RawFastCallKeywords + 392

    74  python                              0x0000000106362144 _PyMethodDescr_FastCallKeywords + 84

    75  python                              0x0000000106491d05 call_function + 437

    76  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    77  python                              0x0000000106354ef5 function_code_fastcall + 117

    78  python                              0x0000000106358312 method_call + 130

    79  python                              0x0000000106355d92 PyObject_Call + 130

    80  python                              0x000000010648fba5 _PyEval_EvalFrameDefault + 46709

    81  python                              0x0000000106354ef5 function_code_fastcall + 117

    82  python                              0x0000000106491c07 call_function + 183

    83  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    84  python                              0x0000000106354ef5 function_code_fastcall + 117

    85  python                              0x0000000106491c07 call_function + 183

    86  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    87  python                              0x0000000106354ef5 function_code_fastcall + 117

    88  python                              0x0000000106491c07 call_function + 183

    89  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    90  python                              0x0000000106354ef5 function_code_fastcall + 117

    91  python                              0x0000000106491c07 call_function + 183

    92  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    93  python                              0x0000000106354ef5 function_code_fastcall + 117

    94  python                              0x0000000106491c07 call_function + 183

    95  python                              0x000000010648f978 _PyEval_EvalFrameDefault + 46152

    96  python                              0x0000000106354ef5 function_code_fastcall + 117

    97  python                              0x0000000106491c07 call_function + 183

    98  python                              0x000000010648e9a0 _PyEval_EvalFrameDefault + 42096

    99  python                              0x00000001064832ee _PyEval_EvalCodeWithName + 414

    100 python                              0x00000001064e6b30 PyRun_FileExFlags + 256

    101 python                              0x00000001064e5fa7 PyRun_SimpleFileExFlags + 391

    102 python                              0x0000000106513c03 pymain_main + 9635

    103 python                              0x0000000106327b4d main + 125

    104 libdyld.dylib                       0x00007fff5d7173d5 start + 1

)

Я также пробовал запустить openFileDialog.py на windows. Ошибка не возникла на windows.

Я также запустил simpleOpenFileDialog.py на моем Ma c.

Затем этот смог работать без ошибок.

simpleOpenFileDialog.py

import tkinter
from tkinter import filedialog

root = tkinter.Tk()
root.withdraw()

dock = ""
dock = "/Users/mac/Desktop"

typ = [('text file','*.txt')] 
filePath = filedialog.askopenfilename(filetypes = typ, initialdir = dock)
print(filePath)

Другими словами, tkinter сам по себе не является проблемой.

Если я объединю tkinter и kivy, это вызовет проблемы на Ма c.

Есть ли решение этой проблемы?

Я разрабатываю Python 3.7 и AnacondaPrompt.

...