To resolve the error ModuleNotFoundError: No module named '_tkinter', _lzma when installing or running Python. This error typically occurs because Python is missing certain optional modules (_tkinter for GUI applications using Tk and _lzma for LZMA compression support).


Step 1: Understand the Problem

The error indicates that the Python interpreter cannot find the _tkinter and _lzma modules. These modules are optional and depend on specific libraries during Python’s compilation.

  • _tkinter: Used for GUI programming; requires the Tk development libraries.
  • _lzma: Supports LZMA compression; depends on the xz development libraries.

The issue often arises if Python is built from source without the required development libraries installed.


Step 2: Identify Your Platform

This tutorial will cover solutions for the following platforms:

  • Linux (e.g., Ubuntu, Fedora)
  • macOS
  • Windows

Step 3: Fix the Issue

On Linux

Ensure Required Development Libraries Are Installed Before building Python from source, install the following libraries:

  • For Ubuntu/Debian-based systems:
  • sudo apt update sudo apt install -y tk-dev liblzma-dev libffi-dev libbz2-dev libsqlite3-dev libssl-dev zlib1g-dev libreadline-dev
  • For Fedora-based systems:
  • sudo dnf install -y tk-devel xz-devel libffi-devel bzip2-devel sqlite-devel openssl-devel zlib-devel readline-devel

Rebuild Python from Source If Python was compiled manually, recompile it:

cd /path/to/python/source ./configure --enable-optimizations make -j$(nproc) sudo make altinstall

Verify the Fix Run the following commands to ensure _tkinter and _lzma are available:

python3 -c "import _tkinter; print('Tkinter module works')" python3 -c "import lzma; print('LZMA module works')"


    On macOS

    1. Install Required Libraries Use Homebrew to install the dependencies: brew install tcl-tk xz
    2. Rebuild Python from Source When building Python from source, point to the Homebrew-installed libraries: cd /path/to/python/source ./configure --with-tcltk-includes="-I$(brew --prefix tcl-tk)/include" \ --with-tcltk-libs="-L$(brew --prefix tcl-tk)/lib" \ --enable-optimizations make -j$(sysctl -n hw.ncpu) sudo make altinstall
    3. Verify the Fix Check for the modules as follows: python3 -c "import _tkinter; print('Tkinter module works')" python3 -c "import lzma; print('LZMA module works')"

    On Windows

    1. Ensure Python Was Installed Using the Official Installer
      • Download the latest Python version from the official Python website.
      • During installation, ensure the “Tcl/Tk and IDLE” and “Compression libraries” options are selected.
    2. Add Python to the PATH Ensure Python is added to the PATH environment variable during installation or manually set it.
    3. Verify the Fix Open a command prompt and run: python -c "import _tkinter; print('Tkinter module works')" python -c "import lzma; print('LZMA module works')"

    Step 4: General Tips

    • Always use the latest stable Python version.
    • If you still encounter issues, consider using a precompiled Python version (e.g., from pyenv or conda on Linux/macOS).

    By following these steps, you should be able to resolve the ModuleNotFoundError for _tkinter and _lzma.