web-dev-qa-db-fra.com

Est-il possible d'utiliser gcloud avec python3?

J'ai un peu confus à propos de gcloud avec python3

Après avoir installé gcloud dans env. Python3 et essayé d’illustrer/ Démarrage rapide pour Python dans App Engine Flexible Environment .

Il disait "Vous avez besoin de Google Cloud SDK", j'ai donc installé le SDK. Tout le processus après le SDK (y compris le SDK), il a besoin de python2 env.

Voici une question, est-il impossible de lancer gcloud avec python3 (officiellement) encore? (SDK et python2 avec la bibliothèque gcloud est le meilleur moyen?)

19
piper

J'ai résolu ce problème en spécifiant le chemin d'accès à Python 2 (que j'ai nommé python2 sur mon système).

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

Je suggère d'ajouter l'exportation dans votre fichier .bashrc ou .zshrc.

13
mmla

gcloud-python et gcloud-cli comme dans Cloud SDK sont des produits quelque peu indépendants. Il est vrai que vous avez besoin de python 2.7.x pour exécuter gcloud-cli, mais cela ne vous empêche pas d’utiliser python3 avec la bibliothèque gcloud-python. 

Si vous installez plusieurs versions de python 2.7x et 3.5 par exemple (vous pouvez même utiliser python3 par défaut) tant que vous définissez la variable d'environnement CLOUDSDK_PYTHON pour qu'elle pointe vers un interpréteur python 2.7.x, vous devriez pouvoir exécuter gcloud-cli lors de l'utilisation de python3 votre projet.

Sous Windows, par exemple, Cloud SDK crée son propre python, qui n’entre en conflit avec aucune autre version que vous pourriez avoir sur votre système. C’est une pure dépendance d’exécution pour gcloud-cli.

7
cherba

Dans le install.sh, il est indiqué que python3 est pris en charge mais pas priorisé, car python 2 est, je pense, plus omniprésent. Cela signifie que si vous utilisez macOS, ajoutez une ligne de variable d'environnement de echo "export CLOUDSDK_PYTHON=/your/path/to/python3" >> ~/.bash_profile permettra à gcloud d'utiliser le python3 situé.

Si cela ne fonctionne pas, pointez-le sur le python 2 et utilisez uniquement python 3 pour votre propre travail devrait résoudre le problème.

# 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

La configuration système requise est explicitement indiquée dans python 2.7.x https://cloud.google.com/sdk/downloads

pourquoi voulez-vous exécuter gcloud avec python3 de toute façon?

0
marcadian