Mac gcloud install ImportError: No module named __future__
Mac gcloud install ImportError: No module named __future__
为 mac 安装 gcloud 时,根据文档 here:
运行 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
我在安装 shell 脚本中浏览并重复了一些内容。它正在正确设置环境变量(指向我的默认 python 安装,指向 gcloud SDK 的正确位置)。
如果我只输入 python 解释器(使用安装脚本在 运行ning install.py
时指向的相同默认值 python),我可以导入模块就好了:
>>> from __future__ import absolute_import
>>>
唯一值得注意的其他信息是我的默认 python 设置是我从 python 2.7.15 通过 brew 安装创建的虚拟环境。虚拟环境 python bin 位于我的 PATH 中的第一个,因此 python
和 python2
以及 python2.7
都调用了正确的二进制文件。到目前为止,我在此设置上安装软件包时没有遇到其他问题。
如果我回显调用 install.py 脚本的 install.sh 脚本的最后一行,它会显示 /path_to_virtualenv/bin/python -S /path_to_unzipped_file/google-cloud-sdk/bin/bootstrapping/install.py
,这是正确的 python。还是我遗漏了什么?
脚本在启动时使用 -S
command-line switch, which disables loading the site
module。
但是,它是安装在 virtualenv 中的自定义专用 site
模块,它使 virtualenv 工作。因此,-S
开关和 virtualenvs 不兼容,-S
设置基本导入,例如 from __future__
完全崩溃。
您可以从 install.bat
命令中删除 -S
开关,或者使用包装脚本将其从命令行中删除,因为您调用真正的 virtualenv Python.
我在尝试 运行 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
.
在 google-cloud-sdk/install.sh
中转到最后一行,如下删除变量 $CLOUDSDK_PYTHON_ARGS
。
"$CLOUDSDK_PYTHON" $CLOUDSDK_PYTHON_ARGS "${CLOUDSDK_ROOT_DIR}/bin/bootstrapping/install.py" "$@"
"$CLOUDSDK_PYTHON" "${CLOUDSDK_ROOT_DIR}/bin/bootstrapping/install.py" "$@"
为 mac 安装 gcloud 时,根据文档 here:
运行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
我在安装 shell 脚本中浏览并重复了一些内容。它正在正确设置环境变量(指向我的默认 python 安装,指向 gcloud SDK 的正确位置)。
如果我只输入 python 解释器(使用安装脚本在 运行ning install.py
时指向的相同默认值 python),我可以导入模块就好了:
>>> from __future__ import absolute_import
>>>
唯一值得注意的其他信息是我的默认 python 设置是我从 python 2.7.15 通过 brew 安装创建的虚拟环境。虚拟环境 python bin 位于我的 PATH 中的第一个,因此 python
和 python2
以及 python2.7
都调用了正确的二进制文件。到目前为止,我在此设置上安装软件包时没有遇到其他问题。
如果我回显调用 install.py 脚本的 install.sh 脚本的最后一行,它会显示 /path_to_virtualenv/bin/python -S /path_to_unzipped_file/google-cloud-sdk/bin/bootstrapping/install.py
,这是正确的 python。还是我遗漏了什么?
脚本在启动时使用 -S
command-line switch, which disables loading the site
module。
但是,它是安装在 virtualenv 中的自定义专用 site
模块,它使 virtualenv 工作。因此,-S
开关和 virtualenvs 不兼容,-S
设置基本导入,例如 from __future__
完全崩溃。
您可以从 install.bat
命令中删除 -S
开关,或者使用包装脚本将其从命令行中删除,因为您调用真正的 virtualenv Python.
我在尝试 运行 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
.
在 google-cloud-sdk/install.sh
中转到最后一行,如下删除变量 $CLOUDSDK_PYTHON_ARGS
。
"$CLOUDSDK_PYTHON" $CLOUDSDK_PYTHON_ARGS "${CLOUDSDK_ROOT_DIR}/bin/bootstrapping/install.py" "$@"
"$CLOUDSDK_PYTHON" "${CLOUDSDK_ROOT_DIR}/bin/bootstrapping/install.py" "$@"