Python Environments unter Windows verwalten, Standard für cmd festlegen

Probleme bei der Installation?
Antworten
aisberg
User
Beiträge: 7
Registriert: Freitag 27. September 2019, 16:45

Mittwoch 9. Oktober 2019, 10:20

Hallo,
Ich arbeite unter Windows.
Wenn ich ein Python Skript "einfach so" ausführe, funktioniert das auch. Allerdings ist mir nicht klar, wo und wie das dabei verwendete Environment festgelegt wird.

Code: Alles auswählen

import sys
print(sys.version) 
print("\n".join(sys.path))
input()
liefert:
3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]
D:\Users\ggoer\OneDrive\Python
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\python37.zip
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\DLLs
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-packages

So weit, so gut.
Aber wie entscheidet Windows, dass es ausgerechnet dieses Environment verwenden soll?
Ich dachte, das steht vielleicht in der Windows-Umgebungsvariablen. Aber ich kann das Verzeichnis weder in der Systemvariablen "Path" noch in der Benutzervariablen "Path" finden.

Im Visual Studio werden mir 4 Environments angezeigt:
  • Anaconda 5.2.0
    Microsoft Machine Learning Server 4.5.12.0
    Python 3.7 (32-bit)
    Python 3.7 (64-bit)
Woher Visual Studio weiß, welche Environments es gibt, liegt wohl daran, was über Visual Studio oder über den SQL Server oder über Microsoft Machine Learning Server installiert wurde.
Alle Environments werden da nämlich auch nicht angezeigt, so fehlen:

3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)]
c:\users\ggoer\azuredatastudio-python\0.0.1\python.exe

3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)]
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\python.exe

Wie lege ich explizit fest, welche Python Umgebung vom cmd verwendet werden sollen?

Und da man aus VS heraus PowerShell öffnen kann, um damit den Aufruf mit Argumenten zu testen (wie, weiß ich noch nicht, da muss ich mich auch noch einlesen), stellt sich bestimmt auch die Frage, wie man für PowerShell-Aufrufe von Python-Scripten die richtige Umgebung festlegt.
__deets__
User
Beiträge: 6386
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mittwoch 9. Oktober 2019, 10:40

Was sagt denn sys.executable? Denn meiner Meinung nach ist die einzige Art wie das Executable in der Shell gefunden wird per PATH. Das sollte da schon auftauchen. Ein virtualenv zu aktivieren bedeute ja auch nix anderes, als PATH so zu setzen, dass "python" einzugeben den virtualenv-Interpreter als erstes startet.
Antworten