Ich habe eine Conda-Umgebung in der Powershell-Eingabeaufforderung aktiviert. Ich habe ein Python-Paket, das mit pip installiert wurde:
pip install -e .
das installiert mein Paket mit einem Einstiegspunkt simulate
. Es funktioniert einwandfrei, wenn es von der Powershell-Eingabeaufforderung aufgerufen wird:
simulate "abcd"
Wenn ich versuche, es aus einem Powershell-Skript heraus aufzurufen, kann es nicht gefunden werden.
powershell.exe .\run.ps1
kehrt zurück:
simulate : The term 'simulate' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct
and try again.
At C:\path\to\script\run.ps1:1 char:1
+ simulate "abcd"
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (nwsetup:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Antwort1
Verwenden Sie Start-Process
und seine -ArgumentList
Option, um den Python-Befehl (oder das Skript) auszuführen, und übergeben Sie ihm den Argumentwert, den der eigentliche Python-Befehl (oder das Skript) erwartet. Legen Sie den -FilePath
Parameter so fest, dass er unter Windows der vollständige Pfad zur python.exe
Datei ist.
Power Shell
Start-Process -FilePath "C:\Program Files\Python\python.exe" -ArgumentList 'simulate "abcd"';
oder rufen Sie ein Python-Skript auf
Start-Process -FilePath "C:\Program Files\Python\python.exe" -ArgumentList '"c:\scripts\simulate.py" "abcd"';
Unterstützende Ressourcen
Antwort2
Das Ersetzen simulate "abcd"
durch C:\path\to\script\simulate.exe "abcd"
innerhalb des PowerShell-Skripts hat mein Problem behoben.