Python Update - Pakete nachziehen?

Probleme bei der Installation?
Antworten
tobi45f
User
Beiträge: 24
Registriert: Montag 22. Februar 2021, 14:31

Hallo zusammen,

ich habe vorhin von Python 3.8.5 auf 3.9.2 geupdated. Grund dafür ist, dass Pylance in VS Code bei einer eingefügen Bibliothek meckert (Import "MyLib" could not be resolved PylancereportMissingImports). Mein Python Skript und MyLib liegen im selben Ordner. Bei import MyLib as ml meckert er direkt. Funktionieren tut es jedoch trotzdem. Aber nervig ist, dass man dann eben keine Vorschläge beim programmieren erhält. Googlen sagt, man müsse in den Settings dies über ExtraPaths eingeben https://github.com/microsoft/pylance-re ... t-warnings, funktioniert hat das aber nicht. oder ich habe was falsch gemacht.. Whatever

Also dachte ich, einfach mal Python updaten. Nun existieren beide Versionen nebeneinander. Tatsächlich bin ich relativ frisch bei Python und habe bisher die Version nicht geupdated. Wenn ich meine Pakete (pywin32, pandas, numpy etc) in 3.9.2 installieren möchte sagt er mir
"Requirement already satisfied: pywin32 in c:\users\blub\appdata\local\programs\python\python38\lib\site-packages (300)"
Er merkt also, dass es in einer älteren Version installiert ist. Der neue Ordner wäre ja python39 statt 38. Wenn ich den Code aber ausführe, dann juckt es ihn nicht, dass er weiß, dass es in der 3.8er Version liegt. Er schmeißt einen Fehler, da er das Paket nicht findet. Wie gesagt, installieren in der 39er geht nicht.

Kann mir jemand bei diesem vermutlich banalen Problem helfen? Wenn jemand eine Lösung hat für das Pylance-Problem, ebenso sehr gerne :)

Gruß Tobias
tobi45f
User
Beiträge: 24
Registriert: Montag 22. Februar 2021, 14:31

Hm ist meine Frage so trivial, dass niemand antworten möchte? Oder ist das ein Bug, den niemand kennt, weil Python die Pakete eigentlich erkennen sollte und deswegen kann da niemand was zu sagen? Oder wieso antwortet niemand :(
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Manchmal sieht man nicht jeden Post. Und darum antwortet man nicht.

Und Python kennt keine geteilten Pakete zwischen Versionen. Du benutzt also das falsche Pip für 3.8 statt 3.9, womit natürlich nix zu installieren ist.

Am besten immer “python3.X -mpip install 📦” benutzen, dann wird das richtige verwandt.
tobi45f
User
Beiträge: 24
Registriert: Montag 22. Februar 2021, 14:31

Entschuldige, ich war wohl zu ungeduldig ;)
"keine geteilten Pakete zwischen Versionen" soll heißen, dass jedes Paket für jede Version explitit installiert werden muss, korrekt? So verstehe ich den Satz zumindest. Eben dann finde ich es seltsam, dass wenn ich über 3.9.2 versuche ein Paket zu installieren, dass er dies in 3.8 findet und meint, es sei bereits installiert. Auch "pip list" mit beiden Versionen gibt den identischen Inhalt zurück (ich führe die Befehle über Visual Studio Code aus, für die jeweilige Version... Vielleicht liegt da der Fehler?)
Danke für deinen Hinweis, nur der vollständigkeithalber, bei mir (Windows 10) geht dein Command (in der Eingabeaufforderung, vielleicht ist das der Grund, warum dein Command nicht geht) nicht, was geht ist: py -3.9 -m pip install ...
Vielen Dank!
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@tobi45f: Jede Python-Version hat ihre eigenen Pakete. Wenn Du versuchst für Python 3.9 was zu installieren, das aber angeblich schon da ist weil es für 3.8 bereits installiert ist, dann hast Du halt nur *versucht* für 3.9 zu installieren, aber tatsächlich für 3.8 installiert. Oder Deine Installation(en) sind kaputt weil beispielsweise Umgebungsvariablen so gesetzt sind das 3.9 auch versucht die Pfade von 3.8 zu verwenden. Was so gar keine gute Idee ist. Insbesondere wenn man dann versucht etwas zu installieren, kann man sich *beide* Installationen unbrauchbar machen wenn das mit einem Gemisch aus Bibliotheken für beide endet.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
tobi45f
User
Beiträge: 24
Registriert: Montag 22. Februar 2021, 14:31

Ah dann könnten die Umgebungsvariablen das Problem sein. Wie gehe ich damit am besten um? Ehrlich gesagt, verstehe ich gar nicht, wofür die überhaupt sind. Für eine Anwendung, die mit Python Skripten über die Com-Schnittstelle angesteuert werden kann, sollte ich der Anleitung nach (vom Hersteller), den Pfad von Python ..\Local\Programs\Python\Python38 und \Skripts bei den Umgebungsvariablen unterPath hinzufügen. Nun dachte ich, wäre das für 3.9 auch sinnvoll und habe auch diese hinzugefügt.
Frage: Wann und warum füge ich dort die Ordner ein? Immer nur die Version, die ich nutzen will? Oder ist das sowieso Käse?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Man kann das schon machen. Aber dann bekommt man standardmäßig eben nur das Python und muss für 3.9 und alle seine tools wie pip & co eben volle Pfade angeben.
Antworten