Python3でgcloudについて少し混乱しています。
Gcloudをpython3 envにインストールし、例を試しました Quickstart for Python App Engineフレキシブル環境 。
「Google Cloud SDKが必要です」と言われたので、SDKをインストールしました。 SDKを含むすべてのプロセス(SDKを含む)、python2 envが必要です。
ここに質問があります、python3(正式に)でgcloudを実行することはまだ不可能ですか? (gcloudライブラリを使用したSDKとpython2が最適な方法ですか?)
この問題を回避するには、Python 2(システムでpython2
という名前を付けたもの)へのパスを指定します。
$ export CLOUDSDK_PYTHON=$(which python2)
$ ./install.sh
エクスポートを.bashrc
または.zshrc
ファイルに追加することをお勧めします。
gcloud-python と Cloud SDKのようにgcloud-cli は、やや無関係な製品です。 gcloud-cliを実行するためにpython 2.7.xが必要なのは事実ですが、これはgcloud-pythonライブラリでpython3を使用することを妨げるものではありません。
python 2.7xと3.5の複数のバージョンをインストールする場合(python3をデフォルトにすることもできます)、CLOUDSDK_PYTHON環境変数を設定してpython = 2.7.xインタープリターを使用すると、プロジェクトでpython3を使用しながらgcloud-cliを実行できます。
たとえば、Windowsでは、Cloud SDKは独自のpythonをパッケージ化します。これは、システムにある他のバージョンと競合しません。gcloud-cliの純粋なランタイム依存関係です。
install.sh
、python 2は、より普遍的だと思います。macOSを実行している場合、echo "export CLOUDSDK_PYTHON=/your/path/to/python3" >> ~/.bash_profile
は、gcloudがpython3にあるものを使用できるようにします。
動作しない場合は、python 2のいずれかを指定し、独自の作業でpython 3のみを使用して問題を解決します。
# if CLOUDSDK_PYTHON is empty
if [ -z "$CLOUDSDK_PYTHON" ]; then
# if python2 exists then plain python may point to a version != 2
if _cloudsdk_which python2 >/dev/null; then
CLOUDSDK_PYTHON=python2
Elif _cloudsdk_which python2.7 >/dev/null; then
# this is what some OS X versions call their built-in Python
CLOUDSDK_PYTHON=python2.7
Elif _cloudsdk_which python >/dev/null; then
# Use unversioned python if it exists.
CLOUDSDK_PYTHON=python
Elif _cloudsdk_which python3 >/dev/null; then
# We support python3, but only want to default to it if nothing else is
# found.
CLOUDSDK_PYTHON=python3
else
# This won't work because it wasn't found above, but at this point this
# is our best guess for the error message.
CLOUDSDK_PYTHON=python
fi
fi
システム要件では、python 2.7.x https://cloud.google.com/sdk/downloads
とにかくpython3でgcloudを実行したいのはなぜですか?