Real World Python 🐍: Environment Setup - pyenv

You should never ever touch system python.
What is system python?
System python is the python that comes installed with your operating system.
Why shouldn't I touch it?
There are a host of reasons to not use system python.
  • Not the version of python you're looking for. Maybe you want the latest features from python 3.9 but your OS only came with 3.8.
  • Globally installing dependencies is never a good idea and problems with multiple versions of a dependency will have you troubleshooting on a Sunday morning.
  • Your OS might have a system dependency on python which might make your entire system unusable because you managed to break python.
  • pyenv

    Simple Python version management.

    This tool lets us install our preferred python version and use that for our projects so that we don't have to touch system python.

    GitHub logo pyenv / pyenv

    Simple Python version management

    Installing pyenv
    Build dependencies
    pyenv builds python from source, so you will need some build dependencies to use pyenv. These dependencies vary by platform.
    Mac
    brew install openssl readline sqlite3 xz zlib
    Note: Assumes you have brew installed on your machine.
    Debian
    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
    libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
    libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
    For other systems please refer to the official installation docs.
    pyenv
    curl https://pyenv.run | bash
    This uses the pyenv-installer project to install pyenv on your system.
    Installing a python version
    Check what versions are available:
    pyenv install --list
    Install a python version
    pyenv install -v 3.9.5
    Setting python version
    pyenv lets us set the python version globally, locally in our project and even for a particular shell.
    We want to set the python version for our project so we will use local.
    We will create our project directory and navigate into it.
    mkdir quotes-scraper && cd quotes-scraper
    And then set the python version we want to use for our project.
    pyenv local 3.9.5
    This will create a .python-version file in the root directory of the project. If pyenv is active in our environment, this file will automatically activate the specified python version in the project.
    I hope you found this post useful. Please leave any feedback in the comments or DM me @tintin_das on Twitter 🐦.

    18

    This website collects cookies to deliver better user experience

    Real World Python 🐍: Environment Setup - pyenv