113 lines
4.4 KiB
Python
113 lines
4.4 KiB
Python
# -*- coding: utf-8 -*- #
|
|
# Copyright 2015 Google LLC. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
"""Supplementary help for gcloud startup options."""
|
|
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import unicode_literals
|
|
|
|
from googlecloudsdk.calliope import base
|
|
|
|
|
|
@base.UniverseCompatible
|
|
class Startup(base.TopicCommand):
|
|
"""Supplementary help for gcloud startup options.
|
|
|
|
|
|
# Choosing a Python Interpreter
|
|
|
|
The `gcloud` CLI runs under Python. Note that `gcloud` supports Python version
|
|
3.9-3.14. Certain Windows and Linux installs include a bundled Python
|
|
interpreter depending on the package and architecture. Similarly, Intel-based
|
|
Macs offer the option to install CPython as part of the main install script.
|
|
Otherwise, you must have a Python interpreter available on your system. The
|
|
`gcloud` CLI will attempt to locate an interpreter on your system PATH by
|
|
looking for the following binaries:
|
|
|
|
* python3
|
|
* python
|
|
|
|
If you have a bundled Python installed, it will be preferred. To override this
|
|
you will need to set the `CLOUDSDK_PYTHON` environment variable, see below.
|
|
|
|
Other Python tools shipped in the Google Cloud CLI do not support Python 3 and
|
|
require Python 2.7.x, including:
|
|
|
|
* `dev_appserver`
|
|
|
|
# Bundled Python on Linux
|
|
|
|
Linux-based installs include a bundled Python installation on x86_64
|
|
architectures. This installation will be used by default. If you want to use a
|
|
different Python installation, set the `CLOUDSDK_PYTHON` environment variable
|
|
to the absolute path to your python interpreter.
|
|
|
|
If you have multiple Python interpreters available (including a bundled
|
|
python) or if you don't have one on your PATH, you can specify which
|
|
interpreter to use by setting the `CLOUDSDK_PYTHON` environment variable. For
|
|
example:
|
|
|
|
# Use the python3 interpreter on your path
|
|
|
|
$ export CLOUDSDK_PYTHON=python3
|
|
|
|
|
|
# Use a python you have installed in a special location
|
|
|
|
$ export CLOUDSDK_PYTHON=/usr/local/my-custom-python-install/python
|
|
|
|
`gsutil` versions 5.0 and later support Python 3.9-3.13. To use a different
|
|
interpreter for `gsutil` than for the other Python tools, set the
|
|
`CLOUDSDK_GSUTIL_PYTHON` environment variable to the interpreter that you
|
|
want.
|
|
|
|
`bq` versions 2.0.99 and later support Python 3.9-3.14. To use a different
|
|
interpreter for `bq` than for the other Python tools, set the
|
|
`CLOUDSDK_BQ_PYTHON` environment variable to the interpreter that you want.
|
|
|
|
# Configuring the Python Interpreter
|
|
|
|
While not typically necessary, you can pass interpreter level
|
|
arguments to the Python running `gcloud` using the `CLOUDSDK_PYTHON_ARGS`
|
|
environment variable.
|
|
|
|
A common use case for this (which has been special-cased) is to enable
|
|
'site packages'. This allows Python to pick up libraries from the system (
|
|
for example, those that may have been installed with `pip`). Site packages may
|
|
be necessary if you require certain native libraries (as is the case if you
|
|
work with service accounts using a legacy `.p12` key, for example). To enable
|
|
site packages, set `CLOUDSDK_PYTHON_SITEPACKAGES=1`. Note that enabling site
|
|
packages may cause conflicts with `gcloud` packaged libraries, depending on
|
|
what you have installed on your system.
|
|
|
|
|
|
# Setting Configurations and Properties
|
|
|
|
Your active configuration can also be set via the environment variable
|
|
`CLOUDSDK_ACTIVE_CONFIG_NAME`. This allows you to specify a certain
|
|
configuration in a given terminal session without changing the global
|
|
default configuration.
|
|
|
|
In addition to being able to set them via `gcloud config set`,
|
|
each `gcloud` property has a corresponding environment variable. They take
|
|
the form: `CLOUDSDK_SECTION_PROPERTY`. For example, if you wanted to
|
|
change your active project for just one terminal you could run:
|
|
|
|
$ export CLOUDSDK_CORE_PROJECT=my-project
|
|
|
|
For more information, see `gcloud topic configurations`.
|
|
"""
|