Skip to content

Instantly share code, notes, and snippets.

@dennistang
Forked from softwaredoug/ubuntu_py3.md
Created October 4, 2016 05:05
Show Gist options
  • Save dennistang/0901c1bfbfc34be8e2df0cecebb3b83a to your computer and use it in GitHub Desktop.
Save dennistang/0901c1bfbfc34be8e2df0cecebb3b83a to your computer and use it in GitHub Desktop.
Ubuntu 14.04 Python 3.4.2 Setup using pyenv and pyvenv

What I did to get Python 3.4.2 on Ubuntu 14.04. The stock version of Python 3 on Ubuntu is 3.4.0. Which is missing some of the best parts! (asyncio, etc). Luckily I discovered pyenv which solved my problem.

Install pyenv

Pyenv (not to be confused with pyvenv) is the Python equivelant of rbenv. It lets you configure which Python environment/version is available per directory, user, or other session variables.

I followed the instructions here to install pyenv in my home directory. Verbatem, those instructions are:

sudo apt-get install git python-pip make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev virtualenv-clone
sudo pip install virtualenvwrapper

git clone https://github.com/yyuu/pyenv.git ~/.pyenv
git clone https://github.com/yyuu/pyenv-virtualenvwrapper.git ~/.pyenv/plugins/pyenv-virtualenvwrapper

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'pyenv virtualenvwrapper' >> ~/.bashrc

Install Python 3.4.2

Restart your shell to pickup pyenv. Then tell pyenv to download, build, and instatll 3.4.2:

pyenv install 3.4.2

Point a project at 3.4.2

Place a hidden file .python-version in your project. In this file simply place the text:

3.4.2

In this directory, type python to enter the shell and note the version. It should be 3.4.2.

PyVenv

You should also now be able to use pyvenv to bootstrap a virtual environment in this directory. It will bootstrap a virtualenv with python 3.4.2 as the python version. You can do everything you'd normally do in a virtualenv, like install dependencies, etc:

pyvenv venv
source venv/bin/activate
pip install requests
pip freeze > requirements.txt

Syntastic

I use pyflakes with Syntastic for finding syntax bugs in VIM. I had to be sure to install pyflakes to python 3.4.2 by going into a directory where 3.4.2 was being used and doing

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