【问题标题】:sqlite3 error installing Google Cloud SDK with multiple versions of py2.7使用多个版本的 py2.7 安装 Google Cloud SDK 时 sqlite3 错误
【发布时间】:2018-09-18 06:45:26
【问题描述】:

第一次从 AWS 设置迁移到 GCE,请多多包涵我的幼稚问题。

在./google-cloud-sdk/install.sh这一步的过程中,遇到如下错误:

  Welcome to the Google Cloud SDK!
  Traceback (most recent call last):
    File "/Users/t/Desktop/./google-cloud-sdk/bin/bootstrapping/install.py", line 8, in <module>
      import bootstrapping
    File "/Users/t/Desktop/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 19, in <module>
      from googlecloudsdk.core.credentials import store as c_store
    File "/Users/t/Desktop/google-cloud-sdk/lib/googlecloudsdk/core/credentials/store.py", line 34, in <module>
      from googlecloudsdk.core.credentials import creds
    File "/Users/t/Desktop/google-cloud-sdk/lib/googlecloudsdk/core/credentials/creds.py", line 40, in <module>
      import sqlite3
    File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
      from dbapi2 import *
    File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
      from _sqlite3 import *
  ImportError: No module named _sqlite3

经过仔细检查,我注意到我的/usr/local/Cellar/python 即有两个 python2.7 版本。 2.7.10_2 和 2.7.11。

奇怪的是,当我转到python命令行时,这个问题:

  Python 2.7.10 (default, Oct  6 2017, 22:29:07)
  [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
  Type "help", "copyright", "credits" or "license" for more information.

  >>> import sqlite3
  >>> from _sqlite3 import *
  >>> print('hello, this seems to work')
      hello, this seems to work

虽然不幸的是install.sh 是从系统中获取py2.7.11 版本而不是python 版本,但我不确定我们是否可以设置一些环境变量,(例如$CLOUDSDK_PYTHON 在我们开始安装之前)。

【问题讨论】:

    标签: python-2.7 sqlite google-cloud-platform gcloud google-cloud-sdk


    【解决方案1】:

    是的,您应该将 $CLOUDSDK_PYTHON 环境变量设置为指向正确的 Python 安装。查看类似问题:google-cloud-sdk installation not finding right Python 2.7 version in CentOS /usr/local/bin

    【讨论】:

    • 如果有人在使用 asdf 版本管理器时遇到了这个问题,我可以通过在 /usr/bin/python3.8 将 $CLOUDSDK_PYTHON 设置为我的系统 python 来解决这个问题
    【解决方案2】:

    我正在使用pyenv并安装不同的python版本,我必须配置CLOUDSDK_PYTHON指向/usr/local/bin下的系统python才能使其工作。

    指向 pyenv 内部的某个地方,例如 /home/user/.pyenv/shims/python 或 /home/user/.pyenv/versions/2.7.15/bin/python2 不会解决这个问题。

    【讨论】:

      【解决方案3】:

      今天遇到这个问题,既然 python2 已经到了生命周期的尽头,最好开始使用 python3。

      这是一组在 CentOS 7 上对我有用的命令:

      一些要点:

      • 安装 sqlite-devel 包(名称可能会因您的发行版而异)
      • 在配置 Python 解释器时传递 --enable-loadable-sqlite-extensions
      • 使用altinstall 以免破坏主机上的yum,因为它依赖python2 作为默认解释器
      sudo yum install gcc openssl-devel bzip2-devel libffi-devel sqlite-devel
      cd /usr/src
      sudo wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz
      sudo tar xzf Python-3.8.6.tgz
      cd Python-3.8.6
      sudo ./configure --enable-optimizations --enable-loadable-sqlite-extensions
      sudo make altinstall
      sudo rm /usr/src/Python-3.8.6.tgz
      sudo ln -s /usr/local/bin/python3.8 /usr/bin/python3
      sudo ln -s /usr/local/bin/python3.8 /usr/local/bin/python3
      

      【讨论】:

        【解决方案4】:

        如果您使用 Oh-My-ZSH 插件,您需要手动编辑您的 .zshrc 文件。

        添加以下行:

        export CLOUDSDK_PYTHON="/usr/bin/python3"

        下:

        source $ZSH/oh-my-zsh.sh

        保存您的 .zshrc 文件并重新启动您的 Shell 以查看反映的更改。 See below example

        【讨论】:

        • 这不是和其他答案一样吗?
        • @anton-krug Just source .zshrc 只会保留该特定 shell 会话的更改。需要手动编辑 .zshrc 文件以使更改在所有其他 shell 会话中持续存在。
        • 哦,你是对的。当您有足够的声誉时,最好将这些放在现有答案/问题的 cmets 中,而不是单独回答。
        【解决方案5】:

        这是运行安装链接cloudsql时找不到可执行python的问题所以为了解决它我采用了这种方法

        1. which python 它会给python的路径类似于usr/bin/python

        2. 为执行创建符号链接

          ls -s usr/bin/python usr/local/bin/python

        【讨论】:

          【解决方案6】:

          你需要像使用 oh-my-zsh 一样设置环境 -

          export CLOUDSDK_PYTHON=/usr/bin/python3
          

          然后-

          source .zshrc
          

          【讨论】:

            猜你喜欢
            • 2015-07-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-04-15
            • 1970-01-01
            相关资源
            最近更新 更多