Rufen Sie ein Python-Paket aus einem Powershell-Skript auf

Rufen Sie ein Python-Paket aus einem Powershell-Skript auf

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-Processund seine -ArgumentListOption, 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 -FilePathParameter so fest, dass er unter Windows der vollständige Pfad zur python.exeDatei 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.

verwandte Informationen