title: Python packages installation in Windows
body: <p>I recently began learning Python, and I am a bit confused about how packages are distributed and installed.</p>
  
  <p>I understand that the official way of installing packages is <strong>distutils</strong>: you download the source tarball, unpack it, and run: <code>python setup.py install</code>, then the module will automagically install itself</p>
  
  <p>I also know about <strong>setuptools</strong> which comes with <code>easy_install</code> helper script. It uses <strong>eggs</strong> for distribution, and from what I understand, is built on top of distutils and does the same thing as above, plus it takes care of any dependencies required, all fetched from PyPi</p>
  
  <p>Then there is also <strong>pip</strong>, which I'm still not sure how it differ from the others.</p>
  
  <p>Finally, as I am on a windows machine, a lot of packages also offers binary builds through a <strong>windows installer</strong>, especially the ones that requires compiling C/Fortran code, which otherwise would be a nightmare to manually compile on windows (assumes you have MSVC or MinGW/Cygwin dev environment with all necessary libraries setup.. nonetheless try to build numpy or scipy yourself and you will understand!)</p>
  
  <p>So can someone help me make sense of all this, and explain the differences, pros/cons of each method.  I'd like to know how each keeps track of packages (Windows Registry, config files, ..). In particular, how would you manage all your third-party libraries (be able to list installed packages, disable/uninstall, etc..)</p>