it-swarm.com.de

Gibt es eine Möglichkeit, gcloud mit python3 zu verwenden?

Ich habe ein wenig verwirrt über Gcloud mit Python3

Nachdem ich gcloud in python3 env installiert hatte, versuchte ich Quickstart für Python in der flexiblen Umgebung von App Engine .

Da stand "Sie brauchen Google Cloud SDK", also habe ich SDK installiert. Der gesamte Prozess nach dem SDK (einschließlich SDK) benötigt Python2 env.

Hier ist eine Frage: Ist es unmöglich, gcloud (offiziell) noch mit Python3 auszuführen? (SDK und Python2 mit gcloud-Bibliothek ist der beste Weg?)

19
piper

Ich habe dieses Problem umgangen, indem ich den Pfad zu Python 2 (den ich python2 auf meinem System benannt habe) angegeben habe.

$ export CLOUDSDK_PYTHON=$(which python2)
$ ./install.sh

Ich empfehle, den Export Ihrer .bashrc- oder .zshrc-Datei hinzuzufügen.

13
mmla

gcloud-python und gcloud-cli wie in Cloud SDK sind etwas nicht verwandte Produkte. Es ist wahr, dass Sie python 2.7.x benötigen, um gcloud-cli auszuführen. Dies schließt jedoch nicht aus, dass Sie python3 mit der gcloud-python-Bibliothek verwenden. 

Wenn Sie beispielsweise mehrere Versionen von Python 2.7x und 3.5 installieren (Sie können sogar python3 als Standard festlegen), solange Sie die CLOUDSDK_PYTHON-Umgebungsvariable auf den Interpreter python 2.7.x setzen, sollten Sie gcloud-cli ausführen können, während Sie python3 für verwenden dein Projekt.

Unter Windows beispielsweise stellt Cloud SDK einen eigenen Python bereit, der mit keiner anderen Version Ihres Systems in Konflikt steht. Es ist reine Laufzeitabhängigkeit für gcloud-cli.

7
cherba

Im install.sh heißt es, dass Python3 unterstützt wird, aber keine Priorität hat, da Python 2 meiner Meinung nach allgegenwärtiger ist. Wenn Sie macOS ausführen, fügen Sie eine Zeile mit Umgebungsvariablen durch echo "export CLOUDSDK_PYTHON=/your/path/to/python3" >> ~/.bash_profile hinzu. Dadurch kann gcloud das jeweils vorhandene Python3 verwenden.

Wenn es nicht funktioniert, weisen Sie darauf, auf welchen Python 2 sich auch nur Python 3 für Ihre eigene Arbeit verwenden sollte, um das Problem zu lösen.

# if CLOUDSDK_PYTHON is empty
if [ -z "$CLOUDSDK_PYTHON" ]; then
  # if python2 exists then plain python may point to a version != 2
  if _cloudsdk_which python2 >/dev/null; then
    CLOUDSDK_PYTHON=python2
  Elif _cloudsdk_which python2.7 >/dev/null; then
    # this is what some OS X versions call their built-in Python
    CLOUDSDK_PYTHON=python2.7
  Elif _cloudsdk_which python >/dev/null; then
    # Use unversioned python if it exists.
    CLOUDSDK_PYTHON=python
  Elif _cloudsdk_which python3 >/dev/null; then
    # We support python3, but only want to default to it if nothing else is
    # found.
    CLOUDSDK_PYTHON=python3
  else
    # This won't work because it wasn't found above, but at this point this
    # is our best guess for the error message.
    CLOUDSDK_PYTHON=python
  fi
fi
0
minggli

Die Systemanforderung besagte explizit Python 2.7.x https://cloud.google.com/sdk/downloads

warum willst du gcloud trotzdem mit python3 laufen lassen?

0
marcadian