Mac gcloud install ImportError: Нет модуля с именем __future__ - PullRequest
0 голосов
/ 30 января 2019

При установке gcloud для Mac я получаю эту ошибку, когда запускаю команду install.sh в соответствии с документами здесь :

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

Я прокололся и повторил некоторые вещи вустановить скрипт оболочки.Он правильно устанавливает переменные окружения (указывая на мою установку Python по умолчанию, указывая на правильное расположение gcloud SDK).

Если я просто введу интерпретатор python (используя тот же python по умолчанию, на который указывает сценарий установки)при запуске install.py) я могу просто импортировать модуль:

>>> from __future__ import absolute_import
>>> 

Стоит отметить только другую информацию: моя установка по умолчанию для python - это виртуальная среда, которую я создаю из python 2.7.15, установленного через brew.Виртуальная среда Python bin является первой в моем PATH, поэтому python и python2 и python2.7 все вызывают правильный двоичный файл.У меня не было никаких других проблем с установкой пакетов на этой установке.

Если я повторяю последнюю строку скрипта install.sh, который вызывает скрипт install.py, он показывает /path_to_virtualenv/bin/python -S /path_to_unzipped_file/google-cloud-sdk/bin/bootstrapping/install.py, который является правильным Python,Или я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

У меня была ошибка ниже при попытке запуска команд 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__

Если у вас есть virtualenv источник автоматически, вы можете указать переменную окружения CLOUDSDK_PYTHON, то есть set -x CLOUDSDK_PYTHON /usr/bin/python, чтобы не использоватьvirtualenv python.

0 голосов
/ 30 января 2019

В сценарии используется ключ командной строки -S , который запрещает загрузку модуля site при запуске.

Однако этоспециальный выделенный модуль site, установленный в virtualenv, который обеспечивает работу virtualenv.Таким образом, переключатель -S и virtualenvs несовместимы, так как -S устанавливает фундаментальный импорт, такой как from __future__, полностью разрушается.

Вы можете удалить переключатель -S из команды install.bat.или используйте скрипт-обертку, чтобы убрать его из командной строки, когда вы называете свой настоящий Python virtualenv.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...