DEV Community

Hardik Sondagar
Hardik Sondagar

Posted on

5 4

How to use multiple versions of Python

My system has 2.7.6 as a default python version and most of my applications runs on it, but one project that I'm working with AWS IoT requires version 2.7.9.

I will show how to run multiple versions of python using pyenv.

Prerequisite

$ sudo apt-get update
$ 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
Enter fullscreen mode Exit fullscreen mode

Install pyenv

Install pyenv with one-liner provided by the automatic installer.

$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
Enter fullscreen mode Exit fullscreen mode

Add following lines at the end of .bashrc file and restart the terminal.

export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Enter fullscreen mode Exit fullscreen mode

Note : For zsh use .zshrc file.

Usage

Install python version 2.7.9.

$ pyenv install 2.7.9
Enter fullscreen mode Exit fullscreen mode

List all installed python versions.

$ pyenv versions
* system (set by /home/ubuntu/.pyenv/version)
  2.7.9
Enter fullscreen mode Exit fullscreen mode

Use 2.7.9 version for your project.

$ mkdir aws-iot-mqtt
$ cd aws-iot-mqtt
$ pyenv local 2.7.9
Enter fullscreen mode Exit fullscreen mode

Now, verify which python version is enabled for current directory.

// Inside `aws-iot-mqtt` directory
$ python -V
Python 2.7.9
// Check version in parent directory
$ cd ..
$ python -V
Python 2.7.6
Enter fullscreen mode Exit fullscreen mode

Note: Tested on Ubuntu 16.04 server edition

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (7)

Collapse
 
rhymes profile image
rhymes • Edited

It's probably safer to use Windows Subsystem for Linux for that although it's not a real solution

Collapse
 
hardiksondagar profile image
Hardik Sondagar

Windows + Linux Bash = Perfect Combination

Collapse
 
sadpixel profile image
Ishan

pipenv is a cross-platform solution to the same thing. You should check it out

 
rhymes profile image
rhymes • Edited

Because Windows is not supported by pyenv but you can use it inside the sub system being a Linux compatible environment

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay