Erstellen Sie eine Python-GUI-App in Docker (PySimpleGUI).

Was Sie in diesem Artikel lernen können

Voraussetzungen

--Docker und Docker-Compose müssen installiert sein

Ich verwende die Docker Toolbox, sollte dies jedoch mit Docker Desktop tun können (nicht überprüft).

Host-seitige Konfiguration und Containervorbereitung

Host-seitige Einstellungen (Einführung von VcXsrv)

Installieren Sie VcXsrv, um das Fenster des Containers auf der Hostseite anzuzeigen. VcXsrv: Download-Link

Um einen Sicherheitsfehler zu vermeiden, rufen Sie hier die IP-Adresse der VM usw. ab, auf der der Container ausgeführt wird. Fügen Sie die erhaltene IP-Adresse zu "x0.hosts" in dem Ordner hinzu, in dem VcXsrv installiert ist.

Normales Installationsziel: C: \ Programme \ VcXsrv

Starten Sie nach der Installation X Lanuch mit den Standardeinstellungen. OK, wenn es in der Taskleiste gestartet wird!

Behältervorbereitung

Erstellen Sie eine Docker-Datei und eine Docker-compose.yml.

Docekrfile


#Auszug nur der minimal notwendigen Teile
FROM python:3.8.2

RUN pip install pysimplegui

Installieren Sie einfach PySimpleGUI mit pip install. Fügen Sie Benutzer, Ordner, andere Abhängigkeiten usw. selbst hinzu.

Docker-compose.yml


version: "3.2"
services:
  python-gui:
    build: .
    restart: always
    tty: true
    volumes:
      -Host-seitiger Ordner:Containerseitiger Ordner
    environment:
      - DISPLAY=Host-IP-Adresse:0.0

Die Einstellung von X11 wird durch die Umgebungsvariable festgelegt. Die Host-IP-Adresse ist hier die IP-Adresse von DockerNat oder die IP-Adresse des VirtualBox-Netzwerks. (Natürlich muss es sich um ein Netzwerk handeln, das mit dem Container verbunden ist.)

Qiita-Referenzartikel: GUI mit Docker für Windows (wie man X11 nicht mit ssh überträgt)

Sobald Sie dies getan haben, starten Sie den Container und Sie können loslegen

docker-compose up -d --build

Verwenden der PySImple-Benutzeroberfläche

Wenn Sie den erstellten Code ausführen, sollte auf der Hostseite ein Fenster erstellt werden.

Wenn die folgende Fehlermeldung angezeigt wird, funktionieren die X11-Einstellungen nicht ordnungsgemäß. Überprüfen Sie die Einstellungen daher erneut.

ErrorMessage


Kürzung: couldn't connect to display "Host-IP-Adresse:0.0"

Da dies der Hauptartikel zum Erstellen von Umgebungen ist, lesen Sie bitte den folgenden Artikel zum Erstellen von Code.

Die offizielle Dokumentation kann solide sein.

Ich werde auch Artikel veröffentlichen, die auf Japanisch hilfreich waren

Nachtrag

Ich habe auch einen Artikel darüber geschrieben, wie man eine in einem Container erstellte Anwendung in eine EXE für Windows verwandelt. Implementieren der EXE-Konvertierung von Python für Windows mit Docker-Container

Recommended Posts

Erstellen Sie eine Python-GUI-App in Docker (PySimpleGUI).
Erstellen Sie eine einfache GUI-App in Python
Bis Sie eine neue App in Django erstellen
[Docker] Erstellen Sie in 3 Minuten eine jupyterLab (Python) -Umgebung!
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
Erstellen Sie mit Flask einen CSV-Reader
Erstellen Sie einen DI-Container mit Python
Erstellen Sie eine Binärdatei in Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Erstellen Sie mit Django einen LINE-Bot
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Erstellen Sie eine einfache Web-App mit Flasche
Starten Sie eine Flask-App in Python Anywhere
[GPS] Erstellen Sie eine kml-Datei mit Python
Erstellen Sie einen Webdienst mit Docker + Flask
Einführung in Docker Erstellen einer Ubuntu-Umgebung in Ubuntu
Erstellen Sie eine Matrix mit PythonGUI (Textfeld)
Verwenden Sie WebDAV in einer Portable Docker-Umgebung
Flask-Erstellen Sie einen Webdienst mit SQLAlchemy + PostgreSQL
Erstellen Sie mit PyLearn2 eine App zur falschen Unterstützung
Ich möchte mit Python ein Fenster erstellen
Erstellen Sie in Python ein Diagramm der Standardnormalverteilung
So erstellen Sie eine JSON-Datei in Python
Erstellen Sie eine Matrix mit PythonGUI (tkinter-Kombinationsfeld)
Erstellen Sie eine Proteinsequenz-Mutationsbibliothek mit Pandas
Erstellen Sie in Python ein einfaches Momentum-Investmentmodell
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Erstellen Sie ein Datum / Uhrzeit-Objekt aus einer Zeichenfolge in Python (Python 3.3).
Verfahren zur Erstellung plattformübergreifender Apps mit kivy
Erstellen Sie in Python ein Paket mit globalen Befehlen
So erstellen Sie eine Rest-API in Django
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie in KiCad ein Rahmenantennenmuster in Python
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
Erstellen Sie eine Todo-App mit Django REST Framework + Angular
Erstellen Sie mit Py2app und Tkinter eine native GUI-App
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Erstellen Sie ein Plug-In, um Python Doctest mit Vim (1) auszuführen.
Todo-App mit Django erstellen ③ Aufgabenlistenseite erstellen
Erstellen Sie in Python einen Dekorator, der Argumente dynamisch akzeptiert. Erstellen Sie einen Dekorator
Erstellen Sie eine App, die Schüler mit der Python-GUI-Version errät
Erstellen Sie in Docker eine Ebene für AWS Lambda Python
Erstellen Sie einen Webserver in der Sprache Go (net / http) (1)
Für mich als Django-Anfänger (1) -Erstellen eines Projekts / einer App-
[kotlin] Erstelle eine Echtzeit-Bilderkennungs-App auf Android
Für mich als Django-Anfänger (4) - Erstellen Sie eine Memo-App-
Erstellen Sie mit Quarry einen gefälschten Minecraft-Server in Python
Todo-App mit Django erstellen ⑤ Funktion zum Bearbeiten von Aufgaben erstellen
[Linux] Erstellen Sie ein Selbstzertifikat mit Docker und Apache
Erstellen Sie einen Django-Zeitplan
Erstellen Sie ein Python-Modul
diktieren in diktieren Macht ein Diktat ein Diktat
Erstellen Sie eine bootfähige LV