virtualenv and pip - A python environment in 60 seconds

03 Jan 2014 in Tech

I'm a PHP developer completely new to Python. For this project, I want to make sure that everyone's using the same environment, which means virtualenv and pip. As an added bonus, this means that your pip installs are per project, and not system wide. Here's a quick guide to getting it all set up on Ubuntu.

First, install pip

bash
sudo apt-get install python-pip

Then install virtualenv

bash
sudo pip install virtualenv

Next, create your project directory and cd into it

bash
mkdir new-project && cd new-project

You'll want to create a virtualenv environment for this new project (using the python2.7 interpreter)

bash
virtualenv -p /usr/bin/python2.7 --no-site-packages .virtualenv

The next thing to do is to enable it

bash
source .virtualenv/bin/activate

And install any dependencies

bash
pip install twisted

Once you've installed your dependencies, you'll want to record them somewhere. By convention, pip uses requirements.txt. To generate this file from your currently installed modules, use the following command:

bash
pip freeze > requirements.txt

To install the dependencies from the file, use the following command:

bash
pip install -r requirements.txt

Finally, you'll want to share this project via git or a similar tool. Make sure that your .virtualenv folder is in your ignore file. Your coworkers will be able to rebuild the environment easily.

bash
echo ".virtualenv" > .gitignore
git add .
git commit -m "Initial commit"

When a coworker downloads the project, all they need to do to get up and running is run the following:

bash
virtualenv -p /usr/bin/python2.7 .virtualenv && source pyenv/bin/activate && pip install -r requirements.txt