I have python 3.5 on my google cloud shell and want 3.7 so I can do command line debugging of code I am going to deploy via google cloud functions (and use 3.7 features such
This worked for me on the GCP shell.
# Install requirements
sudo apt-get install -y build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev zlib1g-dev openssl libffi-dev python3-dev python3-setuptools wget
# Prepare to build
mkdir /tmp/Python37
cd /tmp/Python37
# Pull down Python 3.7, build, and install
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar xvf Python-3.7.0.tar.xz
cd /tmp/Python37/Python-3.7.0
./configure
sudo make altinstall
Then you would just call Python like so:
python3.7 ./yourScript.py
Src: https://serverfault.com/questions/918335/best-way-to-run-python-3-7-on-ubuntu-16-04-which-comes-with-python-3-5
Another simple approach is
sudo ``which conda`` install python=3.7 -y
Obviously, I mean single backticks around which conda, but I can't remember how to escape backticks in github markdown.
Slash escape is \
supposed` to work, but doesn't`
In <pre>
tag:
`Slash escape is \`supposed\` to work, but doesn't`
# install pyenv to install python on persistent home directory
curl https://pyenv.run | bash
# add to path
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
# updating bashrc
source ~/.bashrc
# install python 3.7.4 and make default
pyenv install 3.7.4
pyenv global 3.7.4
# execute
python
This is based on @yungchin answer.
Even if the packages were available through apt, the downside of using apt would be that you'd have to install all over again whenever you'd been disconnected from Cloud Shell: it always discards your runtime container.
I'd recommend using https://github.com/pyenv/pyenv for convenience. If you follow the installation guide (and note the bash profile additions should go into .bashrc
in our case) you end up with a python build in your home directory, which is persisted across Cloud Shell sessions. This involves just a few steps:
~/.pyenv
.bashrc
to adjust your $PATH
pyenv install 3.7.3
# this takes a while to buildpyenv global 3.7.3
# sets this version as the default