pyenv
Install pyenv
| $ sudo apt-get install -y make build-essential git libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
|
Also, add the following to your ~/.bashrc or ~/.zshrc:
| # PyEnv
export PATH="${HOME}/.pyenv/bin:${PATH}"
eval "$(${HOME}/.pyenv/bin/pyenv init --path)"
eval "$(${HOME}/.pyenv/bin/pyenv init -)"
eval "$(pyenv virtualenv-init -)"
|
Cheatsheet
Main usage is:
- Install a new Python version
- Create a new
virtualenv using this version - Make your project use this
virtualenv - Install dependencies / run your project inside this
virtualenv
| $ pyenv install 3.12.1
$ pyenv rehash
$ pyenv virtualenv 3.12.1 my-project
$ cd ~/workspace/my-project
$ pyenv local my-project
$ python --version
# Python 3.12.1
|
pyenv install
List available remote Python versions you can install:
Install Python 3.9.12:
| $ pyenv install 3.9.12
$ pyenv rehash
|
pyenv versions
List locally installed versions:
pyenv local
Set a local application-specific pyenv virtualenv in the current directory:
| $ pwd
# ~/workspace/my-project
$ pyenv local my-pyenv-virtualenv-name
|
Set a local application-specific pyenv virtualenv in the current directory:
Unset the local version:
| $ pyenv local --unset
# or
$ rm .python-version
|
pyenv virtualenv
List locally created virtualenvs:
Create a new virtualenv:
| # From system's Python version with name `my-project`:
$ pyenv virtualenv my-project
# From a given Python version:
$ pyenv virtualenv 3.9.12 my-other-project
|
Delete an existing virtualenv:
| $ pyenv uninstall my-project
|
Upgrade pyenv
| $ cd $(pyenv root)
$ git pull
|