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
我正在尝试在docker中运行Tkinter应用程序。我该如何解决?任何帮助将非常感激。谢谢!

最佳答案

好像package tk丢失了,希望可以解决您的问题。从Dockerfile安装tkalpine软件包。修改您的dockerfile以如下所示安装它,

FROM python:alpine3.8 
COPY . /app
WORKDIR /app
RUN apk update && apk add tk
RUN pip3 install -r requirements.txt 
ENTRYPOINT [ "python3" ] 
CMD [ "gui.py" ] 
如果仍然有任何缺少的软件包,只需使用RUN apk add <package1> <package2>添加它们

关于python - 在Docker容器上运行Tkinter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63590165/

相关文章:

node.js - 无法让我的 Node 应用程序使用单独的 docker compose 文件连接到 kafka

python 组合框默认当前

python - 如何在 Sqlalchemy 中使用 not in 和两个字段创建子查询?

git - Docker alpine golang go get error for coding.net private repo

docker - 在dockerfile所在目录中添加内容的正确方法是什么?

Python Tkinter : Attempt to get widget size

python - tkinter Askdirectory 不适用于导入的模块

python - PyQt QTableView 获取跨多列的单元格的起始索引?

python - Dataframe 无法识别该列?

python - 用于*不*创建网站的 Web 框架?