安装带有多个版本py2.7的Google Cloud SDK时出现sqlite3错误

时间:2018-04-08 22:15:47

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

首次从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_22.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版本,但我不确定我们是否可以设置一些环境变量,(例如{{1}在我们开始安装之前)。

6 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

今天遇到此问题,以下是在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

答案 3 :(得分:0)

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

  1. which python 它将为python / usr / bin / python

    提供路径
  2. 为执行建立符号链接

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

答案 4 :(得分:0)

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

export CLOUDSDK_PYTHON=/usr/bin/python3

然后 -

source .zshrc

答案 5 :(得分:0)

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

添加以下行:

export CLOUDSDK_PYTHON="/usr/bin/python3"

在:

source $ZSH/oh-my-zsh.sh

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