Aufgrund von Python-Problemen kann die Google Cloud SDK-CLI unter Windows + Powershell 7 nicht ausgeführt werden.

Aufgrund von Python-Problemen kann die Google Cloud SDK-CLI unter Windows + Powershell 7 nicht ausgeführt werden.

Nachdem ich seit kurzem monatelang keine Probleme hatte, kann ich die Google Cloud SDK CLI-/gcloud-Befehle plötzlich nicht mehr im Windows Terminal/PowerShell 7 (7.3) ausführen.

Der Fehler, den ich erhalte, ist:

>gcloud
C:\Users\admin10lap\AppData\Local\Programs\Python\Python39\python.exe: can't find '__main__' module in ''

Dies scheint sowohl mit als auch ohne die mitgelieferte Python-Option im Google Cloud SDK-Installationsprogramm zu passieren (da ich mehrmals versucht habe, das Google Cloud SDK neu zu installieren).

Seltsamerweise erhalte ich diesen Fehler nicht, wenn ich PowerShell 5.x oder die CMD-Eingabeaufforderung verwende, und die GCP SDK-CLI läuft in diesen Fällen einwandfrei.

PowerShell 7 ist aufgrund der Verbesserungen und Anpassungsmöglichkeiten, die es in Verbindung mit dem Windows-Terminal bietet, zu meinem täglichen Begleiter geworden und ich möchte es unbedingt wieder zum Laufen bringen.

Ich bin mit der Fehlerbehebung für dieses spezielle Problem nicht ganz vertraut. Wenn jemand eine Idee hat, was die Ursache für diesen Python-Fehler in PowerShell 7 sein könnte, wäre ich für jede Rückmeldung sehr dankbar.

Danke.

Antwort1

Als ich mich umschaute, fand ich diesLink zum Github-Problemwobei bereits ein Fehler gemeldet wurde, nachdem gcloud nach dem Update von PowerShell auf 7.3 nicht mehr funktionierte. Ein Problem wurde gemeldet fürGoogle Cloudauch. Sie können vorerst beide Links verfolgen.

Derzeit gibt es einige Workarounds, die wir durchführen könnten:

Wenn Sie Fragen haben oder Erläuterungen benötigen, lassen Sie es mich wissen.

Antwort2

Seit die erste Antwort akzeptiert wurde, gab es mehrere Updates zu den Tickets unterGoogle CloudUndGithub. Das Problem wurde wie zuvor in gcloud SDK Version 413.0.0 behoben. Wenn Sie eine ältere Version verwenden, können Sie den Fix manuell durchführen. Verwenden Sie zunächst diesen Befehl, um den Speicherort von gcloud.ps1 abzurufen:

Get-Command gcloud | Select-Object Source

Bearbeiten Sie als nächstes diese Datei. Um oder bei Zeile 109 herum wird dieser Text stehen:

$run_args_array += $cloudsdk_python_args.split(' ')

Ersetzen Sie die Zeile vollständig durch Folgendes:

$run_args_array += $cloudsdk_python_args.split(' ', [StringSplitOptions]::RemoveEmptyEntries)

Dies ist der Fix aus Version 413.0.0, daher wird gcloud danach ausgeführt. Ich empfehle, dass der allererste Aufruf nach diesem Punkt erfolgt gcloud components update.

(h/t andieser Kommentar auf GitHubfür die obigen Schritte)

verwandte Informationen