Tkinter on mac shows up as a black screen
Asked Answered
C

5

12

So here is my code:

from tkinter import *
root = Tk()
root.title("Greeting")
Label(root, text = "Hello World").pack()
root.mainloop()

but the only thing that shows up on the window after running it is a black screen

you can see the code and the window in this image if it helps

Cystine answered 20/7, 2022 at 18:4 Comment(7)
works fine for me. source: I'm on MacChlori
Out of curiosity, are you on an ARM (M1/M2) Mac? I've been having the same issue with tkinter on my M1 MacBook Pro and I'm wondering if it's 'Apple Silicon' related.Abra
@Abra nah I currently use a 2015 macbook pro with the intel chip so I don't think the issue is to do with thatCystine
@Chlori Can I ask what text editor / IDE you used to test the program out? I used vs codeCystine
@Cystine I also used VS Code. And if it helps I'm on a 2019 MacBook ProChlori
@Ash - good to know! FWIW, I'm also using VS Code, but I doubt that's the cause of the issue.Abra
I faced the exactly same issue and fixed by install python-tk and python 3.10 following this answer https://mcmap.net/q/713805/-modulenotfounderror-no-module-named-39-_tkinter-39-on-macos-duplicate.Estabrook
J
10

Had the same issue with Python 3.8 and Mac os Monterey; I've followed these steps to fix the issue:

  1. Upgraded Mac Os to the latest version
  2. Upgraded Python to 3.10/ 3.11

My issue was fixed.

Jamison answered 29/11, 2022 at 7:0 Comment(5)
this suggestion didn't worked for meViglione
This worked for me. I upgraded to Python 3.10.5 and it worked.Blend
Upgrading to Python 3.11 fixed the issue on my M2 Pro MacBook Pro.Hominy
Cool - solved my issue with the different versions of python and white screens! ThanksCatalogue
Upgrade to Python 3.11 - fixed, many thanks!Procurer
A
8

After much digging, I've found a solution (with some caveats) - you'll need both homebrew and pyenv installed for this to work. The idea is to replace your old deprecated tkinter installation with an up-to-date one that actually works* (and leaves your Mac's system Python alone!)

Note that this will wipe out any packages you’ve installed with pip - back those up first! There is a plugin available for pyenv called pyenv pip-migrate that will make this easier.

Run the following commands

  1. brew uninstall tcl-tk uninstall the old tk if you have it

  2. pyenv uninstall 3.10.5 ...or whatever your current global Python version is

  3. brew install tcl-tk grab a fresh install of tk

  4. pyenv install 3.10.5 grab a fresh install of Python 3.10.5 (or whichever)

  5. pyenv global 3.10.5 set your global Python version (matching the version you just installed above)

You need to install tk via homebrew before installing Python with pyenv because pyenv will automatically try to use whatever tk package it can find when it installs Python.

This will also work if you are using pyenv to upgrade from one version of Python to another.

Final Thoughts

  • If you don't already have homebrew installed, here are good instructions

  • If you don't have pyenv, just run brew install pyenv

  • You’ll probably need to select your preferred Python interpreter in VSCode again

*This worked for me - YMMV

Abra answered 31/7, 2022 at 19:33 Comment(3)
The black screen is a problem because of the Mac system installation of Tcl-TK. IF you run "wish" on the Mac terminal, you'll see "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.". Installing a new version of TK and making sure it's on the PATH BEFORE the system "wish" fixes the issue - Brew suggests : "echo 'export PATH="/usr/local/opt/tcl-tk/bin:$PATH"' >> ~/.zshrc". The Python-specific part of this answer is also needed just because pyenv hardcodes paths.Profitable
@Profitable This is great info - thanks for digging into this further!Abra
thanks to your answer I actually got TK working in Common Lisp :) so thank you too.Profitable
V
1

Had a similar issue when updating to Mac OS Sonoma, my apps using tkinter and customtkinter stopped working and only showed this blank window. In my case it was solved by :

  1. upgrading to Python 3.12.1 from https://www.python.org/downloads/
  2. creating a new environment for my project
Vereeniging answered 10/12, 2023 at 18:52 Comment(0)
C
1

Running on M3 pro with macOS Sonoma version 14.5.

My issue was that I was running an outdated version of Python as the VS Code interpreter.

Simply download the latest version of Python, then update your interpreter version in Python by clicking the current interpreter version in the bottom right of the VS Code window:

1

Chaisson answered 13/7 at 18:52 Comment(0)
I
0

Install/activate and import all globally installed packages in a new virtual environment by running the command:

pip install virtualenv
virtualenv venv --system-site-packages
source venv/bin/activate
Izanami answered 5/11, 2022 at 14:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.