#python #docker #tkinter
#python #docker #tkinter
Вопрос:
Я новичок в использовании docker, и в настоящее время я изучаю, как создать образ docker и запустить его. Мне успешно удалось создать свой образ docker, однако при запуске образа я получаю эту ошибку:
Traceback (most recent call last):
File "gui.py", line 1, in <module>
import tkinter as tk
File "/usr/local/lib/python3.7/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: Error loading shared library libtk8.6.so: No such file or directory (needed by /usr/local/lib/python3.7/lib-dynload/_tkinter.cpython-37m-x86_64-linux-gnu.so)
Dockerfile:
FROM python:alpine3.8
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
ENTRYPOINT [ "python3" ]
CMD [ "gui.py" ]
Requirements.txt:
gspread
oauth2client
fpdf
networkx
Я пытаюсь запустить приложение Tkinter в docker. Как я могу это решить? Любая помощь была бы очень признательна. Спасибо!
Комментарии:
1. Запуск интерактивных приложений с графическим интерфейсом сложно настроить, и они вообще работают только на некоторых определенных платформах. Вероятно, вы обнаружите, что это намного проще запустить без участия Docker, возможно, в виртуальной среде Python.
Ответ №1:
Похоже, package tk
отсутствует, надеюсь, это решит вашу проблему. Установите tk
пакет для alpine
из вашего файла Dockerfile. Измените свой файл dockerfile, чтобы установить его, как показано ниже,
FROM python:alpine3.8
COPY . /app
WORKDIR /app
RUN apk update amp;amp; apk add tk
RUN pip3 install -r requirements.txt
ENTRYPOINT [ "python3" ]
CMD [ "gui.py" ]
Если все еще отсутствуют какие-либо пакеты, просто добавьте их с помощью RUN apk add <package1> <package2>
Комментарии:
1. Вы уверены, что это работает? Моя последующая команда
docker run -e DISPLAY=$DISPLAY --net=host image_name python -m tkinter
закончилась с ошибкой$?
как 139. Даже при переключении наFROM python:3-alpine
результаты те же. Как мне отлаживать? Кстати,FROM python:3-slim
amp;RUN apt install python3-tk
будет работать просто отлично.
Ответ №2:
У меня была похожая проблема, и единственное, что ее исправило, — это установка tkinter с помощью следующего: ЗАПУСТИТЕ apk update amp;amp; apk add tk
Комментарии:
1. Это ничего не добавляет к существующему ответу.