Skip to content

Instantly share code, notes, and snippets.

@grammy-jiang
Last active November 21, 2025 01:31
Show Gist options
  • Select an option

  • Save grammy-jiang/bd07d16412b0f250063b703cf988190b to your computer and use it in GitHub Desktop.

Select an option

Save grammy-jiang/bd07d16412b0f250063b703cf988190b to your computer and use it in GitHub Desktop.
Install pyenv and python 3.8.2
# Origianl url:
# https://gist.githubusercontent.com/grammy-jiang/bd07d16412b0f250063b703cf988190b/raw
# Shorten url:
# https://git.io/JfLCd
# install pyenv and python 3.9.6
# Usage:
# foo@bar:~$ curl --location --show-error --silent https://git.io/JfLCd | bash -s - 3.9.6
set -x
if [ -z "$1" ]; then
echo "No python version supplied, use defautl version 3.9.6 instead."
PYTHON_VERSION="3.9.6"
else
echo "Python version $1 is going to be installed."
PYTHON_VERSION=$1
fi
sudo -s -- <<EOF
apt update
if ! [ -x "$(command -v curl)" ]; then
apt install --yes curl
fi
if ! [ -x "$(command -v git)" ]; then
apt install --yes git
fi
EOF
if ! [ -x "$(command -v pyenv)" ]; then
curl https://pyenv.run | bash
echo "
export PATH=\"\$HOME/.pyenv/bin:\$PATH\"
eval \"\$(pyenv init -)\"
eval \"\$(pyenv virtualenv-init -)\"
export PYTHON_CONFIGURE_OPTS=\"--enable-shared\"" | tee -a ~/.bashrc > /dev/null
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
export PYTHON_CONFIGURE_OPTS="--enable-shared"
else
pyenv update
fi
sudo -s -- <<EOF
apt install --yes build-essential libbz2-dev libffi-dev libgdbm-compat-dev libgdbm-dev liblzma-dev libreadline-dev libsqlite3-dev libssl-dev zlib1g-dev tk-dev uuid-dev libmpdec-dev libbluetooth-dev libexpat1-dev
EOF
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install $PYTHON_VERSION
echo $PYTHON_VERSION | tee -a ~/.pyenv/version > /dev/null
PATH="$PYENV_ROOT/versions/$PYTHON_VERSION/bin:$PATH" pip install -U pip setuptools
pyenv versions
@grammy-jiang
Copy link
Author

CXX=g++ TMPDIR=/var/tmp PYTHON_CONFIGURE_OPTS="--enable-loadable-sqlite-extensions --enable-optimizations --enable-shared --with-lto --with-system-expat --with-system-libmpdec --without-mimalloc" pyenv install -f 3.13.9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment