Hagen20
Anmeldungsdatum: 31. März 2011
Beiträge: 524
|
Hallo liebe Forumnutzer, vielleicht kann mir jemand von Euch helfen. Ich nutze seit Jahren das Programm pondus - ein Gewichtstracker, der csv-Dateien und Grafiken erzeugen kann. Bis vor einigen Jahren war es in den offiziellen Paketquellen. Ich habe jetzt versucht, die Version pondus_0.8.0-4.all.deb zu installieren und erhalte folgende Fehlermeldung: Fehler:Abhängigkeit nicht erfüllbar:python:any(>=2.6.6-7~)
Ich habe schon versucht über aptitude diese Version zu installieren, aber scheitere jedesmal an defekten Paketen und nicht erfüllbaren Abhängigkeiten. Unter Ubuntu 20.04 war es mir noch möglich, die gleiche Version zum Laufen zu bringen, natürlich nur unter der Bedingung eines teilweise korrupten Systems, aber damit konnte ich leben.
Gibt es vielleicht eine Kompatibilitätslösung um ein Python2-Programm in einer Python3-Umgebung laufen zu lassen? Für hilfreiche Antworten wäre ich sehr dankbar. Freundliche Grüße
Christian
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
Was muß das Programm denn können? Ich hatte mal eins für Blutdruck gemacht, eine Spalte für Gewicht hat es nicht, wäre aber kein Problem. Im Anhang ein Screenshot.
- Bilder
|
Hagen20
(Themenstarter)
Anmeldungsdatum: 31. März 2011
Beiträge: 524
|
Das ist ja großartig, Axel! Danke für Deine rasche Antwort. Pondus bietet eine Spalte, in der man unter dem jeweiligen Datum ein ermitteltes Gewicht eintragen kann. Mittels matplotlib konnte man sich für einen definierten Zeitraum eine Kurve der Gewichtsentwicklung ausdrucken, was ich sehr nützlich und anschaulich fand. Man hätte auch Fettanteil, BMI und Notizen etc. eintragen können, aber das fand ich nicht so interessant. Wenn Du eine Möglichkeit siehst, Deine Anwendung entsprechend umzuschreiben und auszugestalten, wäre das sicherlich für viele ein Gewinn, denn derartiges gibt es für Linux nicht, ich glaube nicht mal für Windows. Lediglich apps für Android und iPhone gibt es in dieser Hinsicht zu Hauf, aber die wollen meistens über in-app etwas verkaufen. Also: wenn Du Zeit und Möglichkeit hast, nur zu! Ich würde mich wahnsinnig freuen! Gruß, Christian
|
homer65
Anmeldungsdatum: 8. November 2005
Beiträge: 586
Wohnort: bochum, germany
|
Hallo Namensvetter, habe für mich eine Gewichtswebanwendung programmiert. Vielleicht wäre das auch was für Dich. Ist allerdings in Java programmiert. Man braucht dazu eine Postgres Datenbank und einen Tomcat Servletcontainer oder etwas vergleichbares. Interesse?
Mit freundlichen Grüßen
Christian
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
Ich habe es auf github gestellt. Screenshot Ich habe jetzt mal fürs Diagramm eine Spanne von 60 - 100 kg gewählt, falls es zu wenig ist kann ich es ändern. Die Test-Daten in der Tabelle kannst Du ja löschen. Bei Änderungen in der Tabelle (Doppelklick) darauf achten das Du fürs Gewicht float benutzt, also immer mit Punkt. (z.B. 84.0) Oben gibts einen Button "Programmordner öffnen", der öffnet den Ordner im Dateimanager. Dort findest Du u.a. Gewicht.csv und gewicht.png (Diagramm Bild) Den Starter findest Du unter Büro bzw. Office, mir fiel gerade nichts besseres ein. Du benötigst dazu PyQt5, falls Du es nicht schon hast, sudo apt-get install python3-pyqt5 Für einen ersten Test kannst Du es so installieren. cd ~/Downloads && wget https://raw.githubusercontent.com/Axel-Erfurt/Gewicht/main/Installer.sh && chmod +x ./Installer.sh && ./Installer.sh Das ist der Inhalt der Installer.sh, damit Du siehst was es tut. #!/bin/sh
cd ~/Downloads
echo "herunterladen ..."
wget https://github.com/Axel-Erfurt/Gewicht/archive/main.zip
echo "entpacken ..."
unzip main.zip
echo "verschiebe nach ~/local/share"
mv Gewicht-main ~/.local/share/Gewicht
echo "kopiere Icon nach .icons"
cp ~/.local/share/Gewicht/waage.png ~/.icons
echo "kopiere Starter nach ~/.local/share/applications"
cp ~/.local/share/Gewicht/Gewicht.desktop ~/.local/share/applications
|
Hagen20
(Themenstarter)
Anmeldungsdatum: 31. März 2011
Beiträge: 524
|
Vielen Dank Christian und Axel für Eure Antworten. Leider kann ich mit Postgres und Tomcat nichts anfangen, sorry. Aber Dein Programm, lieber Axel, habe ich schon mal getestet. Klasse! Es kommt dem, was ich mir vorstelle schon sehr nah. Wenn ich jetzt noch meine csv aus dem alten pondus importieren könnte, das Fenster des Programms noch etwas weiter aufziehen könnte und wenn Du für das Gewicht den Spielraum noch etwas nach oben setzt (mit 100 kg komme ich leider nicht ganz hin ...), dann wäre es perfekt. Tausend Dank jedenfalls schon jetzt für die Mühe, die Du Dir gemacht hast. Freundliche Grüße, Christian
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
Wenn Du deine csv aus dem alten pondus mal mit einem Texteditor öffnest könntest Du mal 3 Zeilen davon hier einfügen, dann kann ich sehen wie sie aufgebaut ist.
|
Hagen20
(Themenstarter)
Anmeldungsdatum: 31. März 2011
Beiträge: 524
|
Gerne hier der Ausschnitt der csv: 2011-04-22,93.2
2011-04-23,92.9
2011-04-24,93.0 Im Anhang findest Du einen Auschnitt einer von Pondus erzeugten Diagramm-png, die ich in eine jpg umgewandelt habe.
- Bilder
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4453
Wohnort: Göttingen
|
Du könntest auch einfach Gnuplot verwenden, um ein entsprechendes Diagramm zu zeichnen. Wenn deine Datei z.B. plot.csv heisst, dann erstelle ein Gnuplot-Skript namens example.gnuplot mit folgendem Inhalt:
set datafile separator ',' # Setze das Trennzeichen in der CSV
set xdata time # Setze die X-Achse als Zeitachse
set timefmt "%Y-%m-%d" # Setze das Format der Datumsangabe
plot 'plot.csv' using 1:2 with lines # Zeichne das Diagramm Ausführen tust Du es dann so:
gnuplot -p example.gnuplot
Dabei müsste dann die example.gnuplot und die plot.csv im gleichen Verzeichnis sein.
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
Kopiere mal deine alte csv nach Downloads und nenne sie pondus.csv Zum Umwandeln führst Du dieses python Script aus 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | from datetime import datetime
import locale
import os
g_datei = f"{os.path.expanduser('~')}/.local/share/Gewicht/Gewicht.csv"
p_datei = f"{os.path.expanduser('~')}/Downloads/pondus.csv"
print(g_datei, p_datei)
loc = locale.getlocale()
locale.setlocale(locale.LC_ALL, loc)
liste = []
with open(p_datei, 'r') as f:
old = f.read().splitlines()
f.close()
for lines in old:
line = lines.split(",")
datum = datetime.strptime(line[0], "%Y-%m-%d")
gewicht = line[1]
d = datum.strftime("%A, %d.%B %Y")
sqldatum = datum.strftime("%Y%m%d")
liste.append(f"{d}\t{gewicht}\t\t{sqldatum}")
print('\n'.join(liste))
with open(g_datei, 'w') as f:
f.write('\n'.join(liste))
|
|
Hagen20
(Themenstarter)
Anmeldungsdatum: 31. März 2011
Beiträge: 524
|
Äußerst instruktiv, Doc_Symbiosis! Vielen Dank, nur die Beschriftung der X-Achse liest sich etwas kryptisch. Zu Axel: ich habe das Skript im Terminal ausgeführt und eine ewig lange Datenausgabe erhalten. Sollte das Skript eine Datei erstellen?
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
Hagen20 schrieb: ich habe das Skript im Terminal ausgeführt und eine ewig lange Datenausgabe erhalten. Sollte das Skript eine Datei erstellen?
Ja, Deine alten Daten sollten jetzt in der Gewicht.csv sein.
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4453
Wohnort: Göttingen
|
Hallo Hagen20, die Beschriftung der x-Achse kannst Du noch nach belieben anpassen. Z.B. kannst Du nach der Zeile mit dem timefmt noch folgende Zeile einfügen:
set format x "%d.%m.%y" Müsstest Du nur mal schauen, wie das aussieht, wenn Du noch viel mehr Datenpunkte hast...
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
Ich könnte auch das Diagramm weglassen und gnuplot aufrufen, um den in der Tabelle angezeigten Zeitraum darzustellen. Ich werde das mal testen.
|
Axel-Erfurt
Anmeldungsdatum: 18. Mai 2016
Beiträge: 1347
|
Hallo Doc_Symbiosis, Der Zeitraum meiner Test CSV ist 1.Januar 2020 bis 31.März 2020 gnuplot beginnt aber am 26.Dezember 2019 und endet am 2.April 2020. (siehe Bild) Ist das normal? Edit: hier noch die preview.gnuplot TITLE = "Messungen"
set title TITLE offset char 0, char -1
set datafile separator '\t' # Setze das Trennzeichen in der CSV
set xdata time # Setze die X-Achse als Zeitachse
set timefmt "%Y%m%d" # Setze das Format der Datumsangabe
set format x "%d.%m.%y"
plot "~/.local/share/Gewicht/zeitraum.csv" index 0 u 1:2 w filledcurves below y1=88 lt 2 notitle, "~/.local/share/Gewicht/zeitraum.csv" index 0 u 1:2 w filledcurves above y1=88 lt 7 notitle
- Bilder
|