Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Python 3.7.13 macOS: tk.h version (8.6) doesn't match libtk.a version (8.5) #402

Copy link
Copy link
Closed
actions/python-versions
#171
actions/python-versions#171
@carlosperate

Description

@carlosperate
Issue body actions

Description:
There seems to be a mistmatch between the tkinter versions with Python 3.7 on macOS.

Action version:
v3
Which at the time of writting is v3.1.2

Platform:

  • Ubuntu
  • macOS
  • Windows

Runner type:

  • Hosted
  • Self-hosted

Tools version:

  • Python 3.7
    • Specically 3.7.13
  • Current runner version: '2.291.1'
    • macOS (latest) 11.6.5 20G527

Repro steps:

This simple script opens a tkinter window and closes it after 5 seconds:

import tkinter as tk

root = tk.Tk()
label = tk.Label(root, text="Hello World!")
label.pack(padx=20, pady=20)
root.after(5000, root.destroy)    # Close the Window after 5 seconds
root.mainloop()

With this workflow:

name: Test Python Tk

on: [push, pull_request]

jobs:
  tests-poetry:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
      fail-fast: false
    name: Py ${{ matrix.python-version }} - ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v3
        with:
          python-version: ${{ matrix.python-version }}
      - name: Prepare Ubuntu xvfb
        if: runner.os == 'Linux'
        run: |
          sudo apt-get update
          sudo apt-get install -y libxkbcommon-x11-0 xvfb
      - name: Run tk script (closes itself after 5 seconds) - Ubuntu
        if: runner.os == 'Linux'
        run: xvfb-run python tk_min.py
      - name: Run tk script (closes itself after 5 seconds)
        if: runner.os != 'Linux'
        run: python tk_min.py

Works in all Python versions and operating systems except 3.7 on macOS:

image

Expected behavior:
The Python script to run without throwing an exception

Actual behavior:
An exception thrown by Python:

 Traceback (most recent call last):
  File "tk_min.py", line 9, in <module>
    root = tk.Tk()
  File "/Users/runner/hostedtoolcache/Python/3.7.13/x64/lib/python3.7/tkinter/__init__.py", line 2025, in __init__
    self._loadtk()
  File "/Users/runner/hostedtoolcache/Python/3.7.13/x64/lib/python3.7/tkinter/__init__.py", line 2040, in _loadtk
    % (_tkinter.TK_VERSION, tk_version))
RuntimeError: tk.h version (8.6) doesn't match libtk.a version (8.5)

Metadata

Metadata

Labels

bugSomething isn't workingSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.