Lors de l'installation de gcloud pour mac, j'obtiens cette erreur lorsque j'exécute la commande install.sh
conformément à la documentation ici :
>>> from __future__ import absolute_import >>>
J'ai fouillé et fait écho à certaines choses dans le script du shell d'installation. Il définit correctement les variables d'environnement (pointant vers mon installation python par défaut, pointant vers l'emplacement correct du SDK gcloud).
Si j'entre simplement l'interpréteur python (en utilisant le même python par défaut que le script d'installation pointe vers lors de l'exécution de install.py
) Je peux très bien importer le module:
Traceback (most recent call last): File "/path_to_unzipped_file/google-cloud-sdk/bin/bootstrapping/install.py", line 8, in <module> from __future__ import absolute_import
Seules les autres informations à noter sont que ma configuration python par défaut est un environnement virtuel que je crée à partir de python 2.7.15 installé via brew. L'environnement virtuel python bin est le premier dans mon PATH donc python
et python2
et python2.7
invoquent tous le binaire correct. Je n'ai eu aucun autre problème d'installation de packages sur cette configuration jusqu'à présent.
Si je fais écho à la dernière ligne du script install.sh qui appelle le script install.py, il affiche / path_to_virtualenv / bin / python -S /path_to_unzipped_file/google-cloud-sdk/bin/bootstrapping/install.py
qui est le bon python. Ou est-ce que je manque quelque chose?
3 Réponses :
Le script utilise la commande -S
- commutateur de ligne , qui désactive le chargement du site < / code> module
au démarrage.
Cependant, c'est un module site
dédié personnalisé installé dans un virtualenv qui fait fonctionner un virtualenv. En tant que tel, le commutateur -S
et les virtualenvs sont incompatibles, avec -S
les importations fondamentales définies telles que from __future__
se décomposent entièrement. P >
Vous pouvez supprimer le commutateur -S
de la commande install.bat
ou utiliser un script wrapper pour le supprimer de la ligne de commande lorsque vous appelez votre véritable virtualenv Python .
Merci cela fonctionne! Cependant, après l'installation réussie de gcloud
, toute tentative d'utilisation de gcloud
entraîne la même erreur. J'ai ouvert une nouvelle question car c'est techniquement un nouveau problème et celui-ci est résolu: stackoverflow.com/questions/54448868/...
J'ai eu l'erreur ci-dessous en essayant d'exécuter des commandes gcloud.
File "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/lib/gcloud.py", line 20, in <module> from __future__ import absolute_import ImportError: No module named __future__
Si votre virtualenv
est automatiquement généré, vous pouvez spécifier la variable d'environnement CLOUDSDK_PYTHON
ie set -x CLOUDSDK_PYTHON / usr / bin / python
pour ne pas utiliser le virtualenv
python
.
p >
Dans google-cloud-sdk / install.sh
, allez à la dernière ligne, supprimez la variable $ CLOUDSDK_PYTHON_ARGS
comme ci-dessous.
"$CLOUDSDK_PYTHON" $CLOUDSDK_PYTHON_ARGS "${CLOUDSDK_ROOT_DIR}/bin/bootstrapping/install.py" "$@" "$CLOUDSDK_PYTHON" "${CLOUDSDK_ROOT_DIR}/bin/bootstrapping/install.py" "$@"
p >