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

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.

 Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 30 de Jun. de 2026 a las 0:00
Editada: MathWorks Support Team el 30 de Jun. de 2026 a las 12:02

0 votos

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.

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.

Productos

Versión

R2020b

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 21 de Abr. de 2021

Editada:

el 30 de Jun. de 2026 a las 12:02

Community Treasure Hunt

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

Start Hunting!

Translated by