sqlite3 使用多个版本的 py2.7 安装 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版本,但我不确定我们是否可以设置一些环境变量,(例如 $CLOUDSDK_PYTHON在我们开始安装之前(。

是的,您应该将 $CLOUDSDK_PYTHON 环境变量设置为指向正确的 Python 安装。看到类似的问题:google-cloud-sdk 安装没有在 CentOS/usr/local/bin 中找到正确的 Python 2.7 版本

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

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

今天遇到了这个问题,由于 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
这是运行

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

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

  2. 创建用于执行的符号链接

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

你需要设置环境,就像你正在使用oh-my-zsh -

export CLOUDSDK_PYTHON=/usr/bin/python3

然后-

source .zshrc

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

添加以下行:

export CLOUDSDK_PYTHON="/usr/bin/python3"

下:

source $ZSH/oh-my-zsh.sh

保存.zshrc文件并重新启动命令行管理程序以查看反映的更改。请参阅以下示例

最新更新