Search code examples
pythontkintervisual-studio-code

DEPRECATION WARNING: The system version of Tk is deprecated, M1 Mac in Vs Code - global Python


(M1 MBA 2020, MacOS 12.3.1) So inside of Vs Code, when I select my interpreter as Python 3.8.9 from my usr/local/bin Tkinter it runs as I want it to.

This is the working interpreter

Here is the running code for reference.

Running Code

The problem arises when I am trying to use the Global Python 3.8.9 interpreter (usr/bin/python3). When the code runs, the application ends up looking like this.

not working tkinter

Additionally, when I run the code the terminal reads the following:

DEPRECATION WARNING: The system version of Tk is deprecated and may be removed in a future release. Please don't rely on it. Set TK_SILENCE_DEPRECATION=1 to suppress this warning.

How is it possible for me to fix this error? Or update my global Tkinter version without straying away from Python 3.8.9. Furthermore if any more info is needed I'll be happy to provide, sorry I'm new to this stuff 😅

Packages used in the app: tkinter, Pillow, tkmacosx

One last thing, when I get rid of all mentions of the package Tkmacosx, the app appears like this:

app without tkmacosx


Solution

  • If you have Homebrew installed, you can update tk with:

    brew uninstall tcl-tk --devel
    brew install tcl-tk
    

    Which is the recommended option

    Then you may need to add export PATH="/usr/local/opt/tcl-tk/bin:$PATH" to your .zshrc file:

    If you are using a zsh terminal:

    Zsh tab

    Use:

    echo "# For tkinter 
    export PATH=\"/usr/local/opt/tcl-tk/bin:\$PATH\"" >> ~/.zshrc
    
    source ~/.zshrc
    

    Or if you are using a bash terminal:

    echo "# For tkinter 
    export PATH=\"/usr/local/opt/tcl-tk/bin:\$PATH\"" >> ~/.bashrc
    
    source ~/.bashrc
    

    If the steps above didn't work, you may need to install another package (@goker):

    brew install python-tk@3.10
    

    Homebrew

    Reference

    Python's offical tk upgrade docs