【问题标题】:Mac gcloud install ImportError: No module named __future__Mac gcloud 安装 ImportError:没有名为 __future__ 的模块
【发布时间】:2019-06-24 02:17:50
【问题描述】:

在为 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 解释器(使用安装脚本在运行 install.py 时指向的默认 python),我可以很好地导入模块:

>>> from __future__ import absolute_import
>>> 

唯一值得注意的其他信息是我的默认 python 设置是我从通过 brew 安装的 python 2.7.15 创建的虚拟环境。虚拟环境 python bin 位于我的 PATH 中,因此 pythonpython2python2.7 都调用正确的二进制文件。到目前为止,我在此设置上安装软件包时没有其他问题。

如果我回显调用 install.py 脚本的 install.sh 脚本的最后一行,它会显示 /path_to_virtualenv/bin/python -S /path_to_unzipped_file/google-cloud-sdk/bin/bootstrapping/install.py 这是正确的 python。还是我错过了什么?

【问题讨论】:

    标签: python gcloud google-cloud-sdk


    【解决方案1】:

    脚本使用-S command-line switch,这会在启动时禁用site module

    但是,它是一个自定义的专用 site 模块,安装在 virtualenv 中,使 virtualenv 工作。因此,-S 开关和 virtualenvs 不兼容,-S 设置基本导入,例如 from __future__ 完全崩溃。

    您可以从install.bat 命令中删除-S 开关,或者在调用真正的virtualenv Python 时使用包装脚本将其从命令行中剥离。

    【讨论】:

    • 感谢这项工作!但是,在成功安装 gcloud 后,任何尝试使用 gcloud 都会导致相同的错误。我提出了一个新问题,因为它在技术上是一个新问题并且这个问题已解决:stackoverflow.com/questions/54448868/…
    【解决方案2】:

    尝试运行 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_PYTHONset -x CLOUDSDK_PYTHON /usr/bin/python 以不使用virtualenv python

    【讨论】:

      【解决方案3】:

      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" "$@"
      

      【讨论】:

        猜你喜欢
        • 2019-06-24
        • 2015-01-21
        • 1970-01-01
        • 1970-01-01
        • 2016-12-07
        • 1970-01-01
        • 2015-12-22
        • 2015-10-04
        • 2016-05-21
        相关资源
        最近更新 更多