I use Tkinter to create a GUI window and select a file. The code I use is the following:
Tk().withdraw()
file = askopenfilenames(title='Chose transition file')
When I run this alone, both in Windows and OSX, it runs. However, I need it to be a part of a larger script which can be found in this link (lines 88-89). This larger script runs correctly in a windows OS, but when I run it in an OSX, I get the following error:
Last login: Thu Apr 30 17:45:40 on ttys000
/Users/nueye/Desktop/plaidtomac/PyInstaller-2.1/Plaid/dist/Plaid ; exit;
MyMacBookPro15:~ nueye$ /Users/nueye/Desktop/plaidtomac/PyInstaller-2.1/Plaid/dist/Plaid ; exit;
running Plaid
2015-04-30 17:46:15.367 Plaid[526:903] -[NSApplication _setup:]: unrecognized selector sent to instance 0x101d41340
2015-04-30 17:46:15.368 Plaid[526:903] An uncaught exception was raised
2015-04-30 17:46:15.369 Plaid[526:903] -[NSApplication _setup:]: unrecognized selector sent to instance 0x101d41340
2015-04-30 17:46:15.370 Plaid[526:903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSApplication _setup:]: unrecognized selector sent to instance 0x101d41340'
*** Call stack at first throw:
(
0 CoreFoundation 0x00007fff8685b7b4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x00007fff84e2c0f3 objc_exception_throw + 45
2 CoreFoundation 0x00007fff868b5110 +[NSObject(NSObject) doesNotRecognizeSelector:] + 0
3 CoreFoundation 0x00007fff8682d91f ___forwarding___ + 751
4 CoreFoundation 0x00007fff86829a68 _CF_forwarding_prep_0 + 232
5 Tk 0x0000000117b0cb24 TkpInit + 545
6 Tk 0x0000000117a829ee Initialize + 1648
7 _tkinter.so 0x0000000103b2ac0d Tcl_AppInit + 77
8 _tkinter.so 0x0000000103b29657 Tkinter_Create + 919
9 Python 0x00000001002bffad PyEval_EvalFrameEx + 21405
10 Python 0x00000001002c1fb3 PyEval_EvalCodeEx + 2115
11 Python 0x000000010023bac0 function_call + 176
12 Python 0x0000000100209eb2 PyObject_Call + 98
13 Python 0x000000010021c56d instancemethod_call + 365
14 Python 0x0000000100209eb2 PyObject_Call + 98
15 Python 0x00000001002b9957 PyEval_CallObjectWithKeywords + 87
16 Python 0x000000010021f85e PyInstance_New + 126
17 Python 0x0000000100209eb2 PyObject_Call + 98
18 Python 0x00000001002bdc60 PyEval_EvalFrameEx + 12368
19 Python 0x00000001002c1fb3 PyEval_EvalCodeEx + 2115
20 Python 0x00000001002c03f0 PyEval_EvalFrameEx + 22496
21 Python 0x00000001002c1fb3 PyEval_EvalCodeEx + 2115
22 Python 0x00000001002c20d6 PyEval_EvalCode + 54
23 Python 0x00000001002e7237 PyRun_StringFlags + 279
24 Python 0x00000001002e7321 PyRun_SimpleStringFlags + 65
25 Plaid 0x0000000157e1beac 0x0 + 5769379500
26 Plaid 0x0000000157e2fcb8 0x0 + 5769460920
27 Plaid 0x0000000157e1b7f4 0x0 + 5769377780
)
terminate called after throwing an instance of 'NSException'
Abort trap
logout
The code runs fine in OSX if I comment out the Tkinter code lines.
Could you please tell me what should I do to overcome this?
If you are using a Python from any current python.org Python installer for macOS (3.10. 0+ or 3.9. 0+), no further action is needed to use IDLE or tkinter. A built-in version of Tcl/Tk 8.6 will be used.
Follow the answer in this question
There is a known issue with TK and IDLE on OSX because:
Python's integrated development environment, IDLE, and the tkinter GUI toolkit it uses, depend on the Tk GUI toolkit which is not part of Python itself. For best results, it is important that the proper release of Tcl/Tk is installed on your machine.
For detail:
If you are using Python from a python.org 64-bit/32-bit Python installer for Mac OS X 10.6 and later, you should only use IDLE or tkinter with an updated third-party Tcl/Tk 8.5 (not 8.6), like ActiveTcl 8.5 installed.
If you are using Mac OS X 10.6, do not use IDLE or Tkinter from the Apple-supplied Python 2.6.1 in Mac OS X 10.6. If possible, install and use a newer version of Python and of Tcl/Tk.
If you are using Mac OS X 10.7 or later, the Apple-supplied Tcl/Tk 8.5 still has serious bugs that can cause application crashes. If you wish to use IDLE or Tkinter, install and use a newer version of Python and of Tcl/Tk.
This link (https://www.python.org/download/mac/tcltk/) maybe help you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With