Ga naar inhoud


Python Tkinter onder de CLI, is dat mogelijk?


Con

Aanbevolen berichten

Mijn Raspberry benader ik eigenlijk maar alleen via Putty en werk dan met de command line interface.

Kan ik vanaf deze prompt met Tkinter een window oproepen?

 

Ik ben bezig om grafieken te genereren middels Tkinter. Onder XP lukt dat heel aardig. Onder de GUI

van linix is dat ook geen probleem maar met de CLI krijg ik foutmeldingen.

 

Maar misschien kan het niet eens wat ik wil, een grafiek genereren met de command line.

 

Als dit nu wel mogelijk is zal ik de foutmeldingen geven.

 

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites


Als ik het script draai onder windows xp en in de GUI van Linux werk het perfect.

 

Dit is de foutmelding, maar ik ben bang dat ik ook een Pythonconflict heb (2.7 versus 3.2);

 

Traceback (most recent call last):
  File "Tkgrafiek.py", line 22, in <module>
    root = Tk()
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
 
 
En dit is het scriptje;
#Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
#Type "copyright", "credits" or "license()" for more information.
 
from Tkinter import *
import random
 
root = Tk()
 
canvas = Canvas(root, height=600, width=900)
canvas.create_rectangle(100, 60, 700, 500, outline="#000", fill="#fff")
canvas.grid(column=2, row=2) #, sticky=(N, W, E, S))
 
xlast, ylast = 0,0
 
for ynew in range (60, 300, 10):
    xnew = random.randint(300, 500)
    if ylast==0:
        ylast=ynew
    if xlast==0:
        xlast=xnew
    canvas.create_line(xlast, ylast, xnew, ynew, fill='magenta', width=2)
    a, b = divmod(ynew, 10)
    if b==0:
        canvas.create_line(100, ynew, 700, ynew, fill="#eee", width=1,)
    a, b = divmod(ynew, 60)
    if b==0:
        canvas.create_text(100,ynew, anchor="e", font="Arial 8 ", fill="black", text=str(ynew-60))
        canvas.create_line(100, ynew, 700, ynew, fill="#ccc", width=1,)
    xlast=xnew
    ylast=ynew
canvas.create_text(100,ynew, anchor="e", font="Arial 8 ", fill="red", text=str(ynew))
 
root.mainloop()
aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

 

Als ik het script draai onder windows xp en in de GUI van Linux werk het perfect.

 

Dit is de foutmelding, maar ik ben bang dat ik ook een Pythonconflict heb (2.7 versus 3.2);

 

Traceback (most recent call last):
  File "Tkgrafiek.py", line 22, in <module>
    root = Tk()
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

 

Zoals ik vermoedde; de DISPLAY variable is het grafische scherm waar de output naar moet. Gezien die niet gedefinieerd is weet je applicatie niet waar zijn grafische output naartoe te sturen.

 

Oplossing:

1. installeer een X11 emulator onder Windows (Xming, CygwinX etc...); deze zorgt dat de X11 grafische omgeving ook onder Windows werkt

2. in Putty configureer je je sessie zodat X11-forwarding aanstaat;. Bij de Opties -> Connection -> SSH -> X11 zorg je dat X11forwarding aanstaat.

 

Daarmee zou het moeten volstaan.

Link naar reactie
Delen op andere sites

Dat houdt dan in dat ik het niet kan draaien zonder Windows?

 

Terwijl ik het als vervanger voor RRD-tools wil gaan gebruiken

en dan draait de Raspberry stand-alone zonder Windows.

 

Achtergrond is dat ik grafieken wil genereren en wil uploaden,

zeg maar het oude liedje . . .

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Tkinter is voor zover ik weet een toolkit om grafische applicaties te bouwen.

En het nadeel aan GUI applicaties: je moet een grafische omgeving draaien :-)

 

Enige andere oplossing is een X11 omgeving op je PI te draaien; maar uiteindelijk is Tkinter denk ik niet echt geschikt voor wat je wil bereiken.

Link naar reactie
Delen op andere sites

Heb je een alternatief voor Tkinter, ik vond het wel

een eenvoudig programma om fraaie grafieken mee te maken.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Ik denk dat het "gnuplot" wordt.

 

Volgens mij kan dat op de achtergrond

draaien zonder graphic interface.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds maart 2021 glasvezel via KPN.

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W10, Gigabyte Brix met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...