第一次从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
在我们开始安装之前(。
是的,您应该将 $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 所以为了解决它,我采用了这种方法
which python
它将给python的路径类似于usr/bin/python创建用于执行的符号链接
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
文件并重新启动命令行管理程序以查看反映的更改。请参阅以下示例