A talk on virtualenv and pip

Well, here we go. The good, the bad and the ugly internals of Python packaging.

Let's get ready to rumble

  • First of all you need to bootstrap your environment.

  • Just run:

    hg clone http://bitbucket.org/dughh_talk
    cd dughh_talk
  • Bear witness to teh magic!

Woohoo, what happened there?

Well easy, let's got through this step by step:

virtualenv --no-site-packages env
source env/bin/activate
easy_install pip
pip install -r requirements.txt

Setup the virtual environment

  • Create a pristine python environment w/o any strings attached in env:

    virtualenv --no-site-packages env
  • Activate the environment:

    source env/bin/activate

Bootstrap pip and install a package

  • First install pip:

    easy_install pip
  • Now install a package using pip:

    pip install docutils

Freeze the environment

Now this is the interesting part.

  • Running:

    pip freeze > requirements.txt
  • produces:

    cat requirements.txt

Install frozen requirements

Now let's install the packages from the file created before.

  • Just run:

    pip install -r requirements.txt

Thank you, that's it

  • Now use this and create some awesome fabfiles for bootstrapping django environments!

  • Or use virtualenvwrapper to ease working on multiple projects.

  • Links: