Intro to conda package management and environments

I know a little Python, but I’ve always been discouraged from learning more by the notoriously confusing package management system. I’m determined to wrap my head around this once and for all, so yesterday I asked on Twitter for any favorite resources on this topic.

Some of the responses boiled down to “haha good luck”, but some were extremely helpful and I thought I’d share them here, both for my own future reference and for anyone else who might find them englightening.

First, Paul Hobson offered to field questions over email and wrote an exceedingly helpful gist in response. After reading this I finally feel like I grasp what environments are beyond “places to have different versions of packages, or something”, how to actually use them and install packages, and where everything lives. Many of the introductions to conda I’ve read assume that the reader already understands what environments are and how they relate to the actual scripts/IPython notebooks/etc. you’re writing, but for me this part has been really confusing until now.

Other tweeps shared some helpful links:

  • Daniel Chen shared his notes on writing a Python package. This is beyond the level of what I’m trying to do, but will be very useful if I start writing my own packages.
  • Ethan White linked to PyData’s tutorial.
  • Matt Davis wrote a helpful post on “the good, the annoying, and the bad” of conda as of October 2014. He also linked to a Python-for-data-science tutorial on Anaconda and IPython notebooks.

Other links I’ve found helpful: