Why am I not able to call python Tkinter in MATLAB?

5 visualizzazioni (ultimi 30 giorni)
I receive the following error when I run "py.tkinter.Tk()" though I installed the tcl files from activestate.
Error using __init__ (line 2270)
Python Error: TclError: Can't find a usable init.tcl in the following
directories:
  C:/Users/sji/AppData/Local/Programs/Python/Python38/lib/tcl8.6
  C:/MATLAB/R2021a/bin/lib/tcl8.6 C:/MATLAB/R2021a/lib/tcl8.6
  C:/MATLAB/R2021a/bin/library C:/MATLAB/R2021a/library
  C:/MATLAB/R2021a/tcl8.6.9/library C:/MATLAB/tcl8.6.9/library
This probably means that Tcl wasn't installed properly.

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 4 Dic 2024
Modificato: MathWorks Support Team il 22 Apr 2021
Looking at the Python source code Modules\_tkinter.c, TCL uses hard coded location of tcl_library_path to find its initialization files which doesn't work when Python is loaded by MATLAB.  
Here is an workaround:
>> setenv('TCL_LIBRARY', 'C:\Users\sji\AppData\Local\Programs\Python\Python38\tcl\tcl8.6')
>> setenv('TK_LIBRARY', 'C:\Users\sji\AppData\Local\Programs\Python\Python38\tcl\tk8.6')
>> py.tkinter.Tk
Run these commands every time you run MATLAB. Alternatively, place the commands in a MATLAB startup script.

Più risposte (0)

Categorie

Scopri di più su Startup and Shutdown in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Prodotti


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by