Pyinstaller nicht gefunden?
Wenn ich mein Python script mit pyinstaller in der Console umwandeln will zu einer exe, sagt meine PowerShell folgendes:
pyinstaller : Die Benennung "pyinstaller" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder
eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1
+ pyinstaller --onefile -w "Speedtest-conv"
+ ~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (pyinstaller:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Wie kann ich das beheben?
2 Antworten
Wenn sich die ausführbare Datei nicht im Ordner befindet , in welchem du Powershell ausführst (oder in einem in der Path-Variable spezifizierten Pfad, findet Powershell keinen Befehl den es ausführen könnte.
entweder du rufst Dein Programm mit der Angabe des vollen Pfades auf:
"c:\PfadZumProgramm\pyinstaller.exe" --onefile -w "Speedtest-conv"
!Es nutz nichts zu Pfad zu wechseln und Pyinstaller aufzurufen! (Das gib nur eine ergänzende Angabe zu den Ausführungsbeschränkungen!):
cd 'C:\ProgramPfad'
pyinstaller --onefile -w "Speedtest-conv" #geht miss
.\pyinstaller --onefile -w "Speedtest-conv" #klappt
...oder du lässt Powershell nach deinem Programm suchen und das Ergebnis aufrufen.
#finde die ausführbare Datei auf Laufwerk c:, wechsle zum Ordner und führe sie aus
Get-ChildItem c:\ 'pyinstaller.exe' -file -recurse -ErrorAction SilentlyContinue | Select-Object -First 1|%{Split-Path $_.fullname|cd; & .\$_ --onefile -w "Speedtest-conv"}
# ....oder ohne zum Ordner zu wechseln
Get-ChildItem c:\ 'pyinstaller.exe' -file -recurse -ErrorAction SilentlyContinue | Select-Object -First 1|%{ & $_.Fullname --onefile -w "Speedtest-conv"}
sexy ist anders...🥵🥴
...allerdings erschließt sich mir nicht wirklich weshalb Du Powershell als Console benutzt, wen Du nicht damit umgehen kannst.
In der normalen Console (cmd) hast du keine Restriktionen und Ausführungsbeschränkungen...
Was glaubst Du weshalb sich viele Administratoren nicht wirklich für Powershell begeistern können?
In cmd wäre dies mit :
for /r "c:\" %a in ("pyinstaller.cmd?") do "%~fa"--onefile -w "Speedtest-conv"
...abgegessen!
Es kennt das Cmdlet nicht.. Das musst du wahrscheinlich über "Import-Module" hinzufügen.. Das genaue Modul kenne ich nicht.. Einfach mal im Internet nach schauen ;)