das RICHTIGE Python RICHTIG installieren | Astronomie.de - Der Treffpunkt für Astronomie

das RICHTIGE Python RICHTIG installieren

cmjub

Mitglied
Hallo Zusammen,

leider enden meine Programmierkenntnisse mit Fortran IV bzw. Pascal6, also noch vor der ganzen Objektorientierten Programmierung etc.

die PSS 0.8.0 Installation mit der Windows EXE hat auf 2 Windows 10 PCs geklappt, aber ich wollte natürlich auch die aktuelle 0.8.15 Version testen und dazu braucht man ja Python auf dem Rechner.
nun habe ich die 3.6.8 Version installiert und auf meinem Notebook funktioniert es, dank der Hilfe der Jugendgeneration (die Pythonversionen unterscheiden sich wohl markant und so geht nicht unbedingt die neuste Version, pip3 wurde nicht sofort gefunden, irgendwie ging es dann)

  • Jetzt wollte ich das Ganze auf meinem Heim-PC wiederholen. Also Python 3.6.8 installiert. ==>OK
  • Wenn ich aber jetzt in cmd Python3 eingebe, soll ich plötzlich aus dem MS-Store ein Python 3.7 installieren (paßt den 3.7 zu 3.8.6 ???)
  • Python3 in cmd funktioniert damit erstmal, ABER pip3 is not definded
Frage: kann mir jemand erklären, was ich machen muß, damit mein Python 3.6.8 den Befehl pip3 findet??? bzw. warum das auf dem einen Win10 PC geht und bei dem anderen nicht


vielen Dank
...Jub
 

Rolf_Hempel

Mitglied
Hallo Jub,

ich zitiere mal aus dem Benutzerhandbuch:

1607353088469.png


Wenn "pip3" nicht gefunden wird, liegt das daran, dass der Unterordner "Scripts" nicht auf dem Systempfad liegt. Hier ist ein Ausschnitt aus dem Windows-Explorer, der den Inhalt dieses Unterordners anzeigt:

1607353256650.png


Die Datei ist "pip3.exe". Übrigens liegt später in diesem Verzeichnis auch das PSS-Executable (direkt darunter). Also auch zum Start des PSS-Programms muss dieses Verzeichnis auf dem Systempfad liegen.

Jetzt musst Du nur noch wissen, wie man einer Ugebungsvariablen etwas hinzufügt. Dazu gibst Du im Windows 10-Suchfeld (unten links) das Wort "Systemumgebungsvariable" ein. Es wird Dir der Eintrag "Systemumgebungsvariablen bearbeiten" angeboten. Wenn Du darauf klickst, öffnet sich dieses Fenster:

1607353568786.png


Da klickst Du auf "Umgebungsvariablen". Es erscheint folgendes:

1607353700697.png

Du wählst "Path" aus und klickst auf "Bearbeiten":

1607353729465.png


Da fügst Du wie in diesem Beispiel sichtbar die Pfade zu Python36\Scripts und Python36\Library\bin möglichst weit oben hinzu. Dann sollte das Kommando "pip3" gefunden werden.

Schöne Grüße
Rolf
 

Anhänge

  • 1607353623118.png
    1607353623118.png
    20,2 KB · Aufrufe: 22

cmjub

Mitglied
vielen Dank erstmal für die schnelle Hilfe!!!

so ganz "normal" scheint das Ganze aber doch nicht zu funktionieren.

Wie gesagt habe ich ja die 3.6.8er Version von Python von der von Dir verlinkten Site installiert und zwar STANDARD-Installation. Dadurch scheint die ganze Python36-Installation unter C:\Users\xxxnamexxx\AppData\Local\Programs\Python\Python36 installiert zu werden???

Ich habe jetzt ...\Scripts als PATH-Variable eingebaut, ABER ich finde KEINEN ...\Library\bin Ordner???
1607358172452.png



und unter ...\Lib gibt es KEIN bin

Vielen Dank
...Jub
 

cmjub

Mitglied
PS. UND ich habe ja auch nicht Python3.6.8 sondern mein Windows10 will nach der Installation von 3.8.6 und dem cmd python3 Befehl dann immer das Python 3.7 aus dem MS-Store installieren. Ich bekomme kein reines 3.6.8 zum Laufen???
 

Rolf_Hempel

Mitglied
Deswegen hatte ich in dem bereits zitierten Auszug aus dem Benutzerhandbuch extra den Link auf die Webseite hinzugefügt, wo man den Windows-Installer für die Version 3.6.8 herunterladen kann.
 

steffens

Mitglied
Prüfe doch erstmal, wo in Deiner Python-Installation (ich nehme an Du hast 3.6.8 installiert, und die 3.8.6 oben waren nur ein Tippfehler?) genau die ausführbaren Dateien "python.exe" und "pip3.exe" liegen.
Diese Verzeichnisse müssen im Pfad liegen, also in der Umgebungsvariable PATH aufgeführt sein.
Was gibt denn ein
echo %PATH%
auf der Kommandozeile aus?

In Deinem Screenshot von der Python-Installation sieht man kein Executable "python3.exe", daher wird das auch nicht gefunden, wenn Du auf der Kommandozeile einfach python3 eingibst. Wahrscheinlich schlägt Dir Windows daher vor, Python aus dem Store zu installieren.
Das muss aber kein Problem sein. Was gibt denn
python --version
aus? Also nur python, ohne die 3? Wenn das nach 3.6.8 aussieht, dann ist das schonmal soweit gut. Wenn nicht, dann hast Du mehrere Python-Installationen, und die falsche liegt zuerst im Pfad. Das wird man dann aber auch an der Ausgabe von echo %PATH% oben sehen.

Grüße,
Steffen
 

HilliBilli

Mitglied
Ich hatte die gleichen Probleme mit der Installation von Python3 V3.6.8, aber das habe ich dann hinbekommen.
Aber danach gab es beim Aufruf von PlanetarySystemStacker eine Fehlermeldung über das Modul
numpy:
** On entry to DGEBAL parameter number 3 had an illegal value
** On entry to DGEHRD parameter number 2 had an illegal value
** On entry to DORGHR DORGQR parameter number 2 had an illegal value
** On entry to DHSEQR parameter number 4 had an illegal value

Nach Recherche im Internet habe ich dann die Version 1.19.4 von numpy deinstalliert und die Version 1.19.3 installiert. Erst danach lief PSS.

pip3 uninstall numpy
pip3 install numpy==1.19.3

Da auch ich absoluter Neuling bei Python bin habe ich keine Ahnung, ob das so ganz korrekt ist.
 

Rolf_Hempel

Mitglied
Hallo HilliBilli,

ja, das ist korrekt und auch z.B. in Cloudy Nights und auf Github schon so empfohlen. Der Grund ist ein Fehler in der älteren Numpy-Version, die bei Python 3.6.8 mitgeliefert wird. Bei der Installation von PSS freut sich pip3 dann, dass Numpy ja schon da ist und installiert nicht die neuere Version. Ich nehme immer numpy==1.18.4, aber mit 1.19.3 scheint es ja auch zu gehen.

Schöne Grüße
Rolf
 

cmjub

Mitglied
Deswegen hatte ich in dem bereits zitierten Auszug aus dem Benutzerhandbuch extra den Link auf die Webseite hinzugefügt, wo man den Windows-Installer für die Version 3.6.8 herunterladen kann.
Genau von dem (DEINEM) Link habe ich die 3.6.8er Version genutzt...

Ich werde mal die PATH-Thematik genauer prüfen...

Warum braucht man eigentlich bei der Nutzung der 0.8.0 Install-exe KEINE Python Installation und ist das soooo problematisch so eine Install-exe auch für die Zwischen-Versionen bereitzustellen, zumindest, wenn es um so eine wichtige, wie 0.8.15 geht???

Wie gesagt, bin schon Ewigkeiten vom Programmieren weg, damals habe ich Software für Geologen entwickelt und Geologen hatten zumindest damals nix mit IT am Hut😅 , aber ich denke mal, das auch etliche der Astrofotografen nicht unbedingt Programmierer sind...

VG
... Jub
 

cmjub

Mitglied
Prüfe doch erstmal, wo in Deiner Python-Installation (ich nehme an Du hast 3.6.8 installiert, und die 3.8.6 oben waren nur ein Tippfehler?) genau die ausführbaren Dateien "python.exe" und "pip3.exe" liegen.
Diese Verzeichnisse müssen im Pfad liegen, also in der Umgebungsvariable PATH aufgeführt sein.
Was gibt denn ein
echo %PATH%
auf der Kommandozeile aus?

In Deinem Screenshot von der Python-Installation sieht man kein Executable "python3.exe", daher wird das auch nicht gefunden, wenn Du auf der Kommandozeile einfach python3 eingibst. Wahrscheinlich schlägt Dir Windows daher vor, Python aus dem Store zu installieren.
Das muss aber kein Problem sein. Was gibt denn
python --version
aus? Also nur python, ohne die 3? Wenn das nach 3.6.8 aussieht, dann ist das schonmal soweit gut. Wenn nicht, dann hast Du mehrere Python-Installationen, und die falsche liegt zuerst im Pfad. Das wird man dann aber auch an der Ausgabe von echo %PATH% oben sehen.

Grüße,
Steffen
Hallo Steffen,
schon mal vielen Dank für Deine Hilfe, ich bin dadurch ein kleines bisschen weiter gekommen...

1. wenn man die Python 3.6.8-Installationsroutine von Rolfs Link nimmt, bekommt man ja zwei Möglichkeiten zur Installation:
- Standard-Installation (normalerweise empfohlen!!!) legt Python im entsprechenden User-Verzeichnis an, so wie von mir oben beschrieben
- Customer Installation (für PSS wohl wichtiger). Hier kann man verschiedene Vorgaben treffen, z.B. die PATH-Variable für python36 und Python36\Scripts und wenn man "alle User" aktiviert wird Python unter C:\Programme\Python36 installiert und die entsprechenden PATH-Einträge vorgenommen.

2. Du hast Recht, wenn ich einen Python3- oder Python-Befehl absetze, der nicht gefunden werden kann (wegen fehlendem %PATH% oder das es nur "python" und NICHT "pyxthon3" gibt, bietet mir Windows den MS-Shop mit der 3.7er Python-App an...

ABER nun:
1. die RICHTIGE Python-Version habe ich nun: dank python --version kommt "Python 3.6.8" raus
2. echo %PATH% bzw. in der Darstellung von Systemumgebungsvariablen stehen die entsprechenden Pfade ganz oben
1607433164245.png


Unter ...\Scripts ist auch pip3.exe angegeben
1607433270578.png


wenn ich aber unter "Pythen" den pip3-Befehl absetze bzw. die entsprechende pip3-Befehlszeile zur PSS-Installation eingebe bekomme ich trotzdem einen Fehler ???
1607433619860.png


Ich habe mir auch Rolfs Handbuch mit den entsprechenden Absatz zig mal durchgesehen, seine Links genutzt und seine Befehlszeilen aus dem Handbuch kopiert - ich komme nicht weiter

Übrigens steht im Handbuch was von "...\Library\bin" - so ein Verzeichnis gibt es aber nicht, hoffe das ist nicht schlimm...

Noch Ideen, die mir da weiterhelfen???
Vielen Dank
...Jub
 

steffens

Mitglied
Du darfst nicht python selbst starten, sondern - so wie es im Handbuch steht - einfach ein Terminal (cmd) aufmachen, und direkt eingeben:
Code:
pip3 install planetary-system-stacker
Das sollte alles erledigen.
 

Rolf_Hempel

Mitglied
Hallo Jub,

Du scheinst ja auf dem richtigen Weg zu sein. Nur den Eintrag "...\Library\bin" solltest Du noch dem Pfad hinzufügen. Dass Du dieses Verzeichnis (noch) nicht siehst, liegt daran, dass Du PSS ja noch gar nicht installiert hast.

Leider ist es nicht ganz so einfach, einen Windows-Installer zu bauen. Ich mache das mit der Software "pyinstaller", aber die ist sehr kompliziert und fehlerträchtig. Tatsächlich hatte ich schon für eine Zwischenversion versucht, einen neuen Installer zu bauen. Aber das Executable, das dabei herauskam, lief sofort auf eine Exception. Diese Fehler zu debuggen, ist extrem zeitaufwendig. Deswegen tue ich mir das nicht bei jeder Zwischenversion an.

Tatsächlich wächst mir der Aufwand mit der Installationsunterstützung langsam über den Kopf. Ich wüsste nur zu gerne, wie man Python-Software ohne großen Aufwand so ausliefern könnte, dass sie überall ohne Computerkenntnisse auf Knopfdruck ans Laufen kommt. Auf Windows kann ich ja wenigstens noch mit einigem Aufwand einen Standard-Installer erstellen. Aber auf Linux und MacOS, wo es eine Vielzahl von Nutzern gibt, sieht das noch viel düsterer aus. Im Moment erscheint es mir immer noch der beste Weg zu sein, Python 3 zu installieren, und dann PSS mit pip3. Immerhin ist dann, wenn man erstmal Python 3 selbst am Laufen hat, die PSS-Installation selbst ziemlich einfach. Und noch besser klappt es mit der Aktualisierung bei einer neuen Version.

Schöne Grüße
Rolf

PS: Wenn Du den Befehl "pip3 install planetary-system-stacker" erfolgreich ausgeführt hast, denk bitte daran, noch die Numpy-Version auszutauschen mit:
Code:
pip3 uninstall numpy
pip3 install numpy==1.18.4
Auf den Fehler in der alten Numpy-Version, die mit Python 3.6.8 ausgeliefert wird, sind schon einige User gestoßen.
 

cmjub

Mitglied
so, bin wieder ein Stück weiter, aber noch nicht fertig...

1. die Installation lief soweit durch, aber am Ende??? kam eine ROTE Fehlermeldung:
Could not install packages due to an EnvironmentError: [WinError 5] Zugriff verweigert: 'c:\\program files\\python36\\Lib\\site-packages\\PyQt5'
Consider using the `--user` option or check the permissions.

Was muß ich denn da noch machen, habe ich wieder was überlesen (bin übrigens Admin auf meinem Rechner), bei der Python-Customer-Installation habe ich ja angegeben das ALLE User damit arbeiten dürfen.

was ist mit der GELBEN Meldung, das man pip von der Version 18.1 auf 20.3.1 updaten soll???

inzwischen gibt es immer noch keine ...\Library\bin Eintrag, das beutet wohl, das die Installation immer noch nicht sauber durchgelaufen ist, habe auch schon ein update (pip3 install --upgrade planetary-system-stacker) versucht, aber da kommt ja auch der EnvironmentError...

Sind alle anderen PSS-Nutzer auf Linux oder Mac unterwegs, das ich scheinbar der einzige Windows Nutzer mit Problemen bin???

Vielen Dank für Eure Geduld mit mir
...Jub
 

Rolf_Hempel

Mitglied
Hallo Jub,

nein, ich habe Python 3 und PSS auf drei Windows 10-Rechnern und zwei Linux-Systemen ohne Probleme installiert. Allerdings habe ich Python in C:\Python36 und nicht im Systembereich installiert. Daher hatte ich nicht mit den Zugriffsproblemen zu kämpfen, die Du bekommen hast. Lösen kannst Du das entweder, indem Du die Zugriffsrechte auf 'c:\\program files\\python36 ' inklusive allen Unterordnern änderst (schreiben für alle), oder Python 3 nochmal neu im User-Space (wie ich es gemacht habe) installierst.

Die gelbe Meldung zur neueren Pip-Version kannst Du getrost ignorieren.

Schöne Grüße
Rolf
 

cmjub

Mitglied
Hurra,

endlich hat es geklappt...

was wichtig ist:
1. Python 3.8.6 mit "Customize insdtallation" installieren, da kann/muss man dann den Installationspfad auf C:\Python36 setzen. Ich habe auch noch diverse Hacken gesetzt (PATH für Python setzen, für alle User zulassen)

2. numpy deinstallieren und dann die Version numpy 1.8.14 installieren

3. C:\Python36\Library\bin in die Umgebungsvariable PATH eintragen

4. eventuell muss noch folgende Meldung beachtet werden???
1607521392003.png


nun werde ich mal ein paar meiner letzten Mars-Videos raussuchen und testen, testen, testen

VG...Jub
 

yarosso

Mitglied
Hallo Rolf,
nur zur Info für dich, keine Problem PSS 0.8.15 unter Python3.8 und Numpy 1.19.4 (und Windows 10) zu installieren und zu starten, vielen Dank :)!

Viele Grüße und CS,
Matthias
 

Rolf_Hempel

Mitglied
Hallo Jub und Mattias,

vielen Dank für die Rückmeldungen! Es freut mich, dass Ihr es hinbekommen habt. Vor allem wird es jetzt für Euch sehr einfach sein, bei jedem Versionswechsel ganz schnell und elegant das Update zu machen.

Die Warnmeldung zu der mkl-Routine könnt Ihr getrost vergessen. Theoretisch könnte die Ausführung etwas langsamer sein, aber in der Praxis habe ich das noch nie gesehen. Das ist noch eine Baustelle, die ich hoffe, meinem neuen Ko-Autor George Hilios übergeben zu können.

@Matthias: Meinst Du wirklich "Python 3.8"? Oder doch eher Python 3.6.8"? Auch Jub schrieb etwas von Python 3.8.6. Ich vermute einen Zahlendreher. Ich frage deshalb, weil ich es eigentlich so programmiert habe, dass pip3 sich weigert, PSS auf Windows zu installieren, wenn die Python-Version nicht mit 3.5 oder 3.6 anfängt. Der Grund ist ein Fehler im Astropy-Package, so dass dieses auf Python > 3.6 nicht läuft. Auf Linux und MacOS kann man auch die neueren Python-Versionen verwenden.

Schöne Grüße
Rolf
 

yarosso

Mitglied
Hallo Rolf,
ne, Python3.8 passt schon, hab einfach das Wheelpaket angepasst. Hatte Python3.8 und Astropy wegen eines anderen Projekts installiert gehabt, und war zu faul Python3.6 zusätzlich zu installieren.
Muss aber zugeben dass es nicht wirklich spaßig war Astropy unter 3.8 zu installieren.

Viele Grüße und CS,
Matthias
 

Rolf_Hempel

Mitglied
Hallo Matthias,

Hallo Rolf,
ne, Python3.8 passt schon, hab einfach das Wheelpaket angepasst. Hatte Python3.8 und Astropy wegen eines anderen Projekts installiert gehabt, und war zu faul Python3.6 zusätzlich zu installieren.
Muss aber zugeben dass es nicht wirklich spaßig war Astropy unter 3.8 zu installieren.

Viele Grüße und CS,
Matthias

Stimmt, ich glaube, darüber hatten wir uns schon mal ausgetauscht. Ich komme bei den vielen Kontakten zu Benutzern manchmal etwas durcheinander. :(

Okay, Du kennst Dich ja gut mit Python und Installation mit Wheels aus. Ich hatte auch schon mal daran gedacht, Astropy aus PSS ganz herauszuschmeißen. Ich brauche es eigentlich nur zur Bildein- und -ausgabe im FITS-Format. Das müsste bestimmt auch anders gehen. Im Zweifelsfall müsste ich das selbst programmieren. Ist ja keine Hexerei. Aber im Moment habe ich andere Prioritäten.

Schöne Grüße
Rolf
 

yarosso

Mitglied
Hallo Rolf,
ah, ok, hab dieses Pythonpaket für Fits I/O gefunden was sogar recht aktuell gehalten wird: fitsio
Auf die Schnelle gesehen wird astropy-fits nur an zwei Stellen in PSS verwendet (frames.py und Test-Programm), wenn ich am Wochenende Zeit hab kann ich versuchen das ganze durch fitsio zu ersetzen, muss nur Fits-Testbilder finden.

Ansonsten kann ich dir noch einen selbstgebastelten C++ Fitshandler anbieten den ich damals für meine Bachelorarbeit geschrieben hab, allerdings mit etwas fragwürdiger Codequalität o_O.

Viele Grüße und CS,
Matthias
 

Rolf_Hempel

Mitglied
Hallo Matthias,

das sieht interessant aus! Tatsächlich sollte es nicht schwierig sein, das im Code zu ersetzen. Wenn Du magst, kannst Du mir ja einen Pull-Request (aber bitte auf dem Branch "prototype") auf Github schicken.

Zu Fits-Testbildern: Um den FITS-Import / -Export hatte sich seinerzeit mein damaliger Koautor Michal Powalko gekümmert. Daher habe ich da nichts. Ich weiß nur, dass es Probleme mit inkonsistenten Headern gab. Steht auch etwas in den Kommentarzeilen. Ich selbst habe keine Testbilder (außer denen, die man mit PSS beim Schreiben erzeugen kann).

Ich bin gespannt, was Du herausfinden wirst!

Schöne Grüße
Rolf
 
Oben