前回の記事でConoha WingでGoogle cloud SDKを使う為に、python2.7のインストールについて書きました。
その続きです。
Google cloud SDKはpython2.7より上のバージョンでは動いてくれないので、先にpython2.7を導入しておいてください。
$ gsutil version
ERROR: Python 3 and later is not compatible with the Google Cloud SDK. Please use Python version 2.7.x.
If you have a compatible Python interpreter installed, you can use it by setting
the CLOUDSDK_PYTHON environment variable to point to it.
Contents
Google cloud SDKのインストール
Google cloud SDKのインストールは非常に簡単です。
$ curl https://dl.google.com/dl/cloudsdk/channels/rapid/install_google_cloud_sdk.bash | bash -
とりあえずはこれで指示に従っていけばインストールが完了します。
インストール後はcloud sdkが先程導入したpython2.7を参照してくれるよう、環境変数を.bashrcに記述しておきます。
$ echo 'export CLOUDSDK_PYTHON=$HOME/local/bin/python' >> ~/.bashrc
$ source ~/.bashrc
これでcloud SDKが使用できるようになるはずですが、今度はsqlite3がねーよとほざいてきます。
$ gsutil version
Traceback (most recent call last):
File "/home/cxxxxx/google-cloud-sdk/bin/bootstrapping/gsutil.py", line 13, in
import bootstrapping
File "/home/cxxxxx/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 44, in
from googlecloudsdk.core.credentials import store as c_store
File "/home/cxxxxx/google-cloud-sdk/lib/googlecloudsdk/core/credentials/store.py", line 36, in
from googlecloudsdk.core.credentials import creds
File "/home/cxxxxx/google-cloud-sdk/lib/googlecloudsdk/core/credentials/creds.py", line 40, in
import sqlite3
File "/home/cxxxxx/local/lib/python2.7/sqlite3/__init__.py", line 24, in
from dbapi2 import *
File "/home/cxxxxx/local/lib/python2.7/sqlite3/dbapi2.py", line 28, in
from _sqlite3 import *
ImportError: No module named _sqlite3
sqlite3のインストール
仕方がないのでsqlite3をソースコードからビルドして導入です。https://www.sqlite.org/download.htmlにソースコードがあるので適宜どうそ。
$ wget https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz
$ tar -xvf sqlite-autoconf-3280000.tar.gz
$ cd sqlite-autoconf-3280000
$ ./configure --prefix=$HOME/local
$ make && make install
$ ls $HOME/local/lib | greq sqlite
libsqlite3.a
libsqlite3.la
libsqlite3.so
libsqlite3.so.0
libsqlite3.so.0.8.6
sqlite3.13.0
sqliteがビルドできました。では、残念ながらpython2.7の導入しなおしです。
python2.7の再ビルド
sqlite3のライブラリを反映させる為にpythonのビルドをし直します。
# https://www.python.org/downloads/source/ $ wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz $ tar -xvf Python-2.7.16.tgz $ cd Python-2.7.16 $ ./configure --prefix=$HOME/local/ --enable-optimizations $ make && make install
これでようやくGoogle cloud SDKが使えるようになります。無理キレそう...
$ gsutil version
gsutil version: 4.38
cloud SDKのコマンドによっては別のライブラリが足らないじゃあーじゃこーじゃ言われるかもしれませんが、ケースバイケースでライブラリ等をビルドして導入していきましょう。