I'm newish to the python ecosystem, and have a question about module editing. 
I use a bunch of third-party modules, distributed on PyPi.  Coming from a C and Java background, I love the ease of easy_install <whatever>.  This is a new, wonderful world, but the model breaks down when I want to edit the newly installed module for two reasons:

The egg files may be stored in a folder or archive somewhere crazy on the file system.
Using an egg seems to preclude using the version control system of the originating project, just as using a debian package precludes development from an originating VCS repository.

What is the best practice for installing modules from an arbitrary VCS repository?  I want to be able to continue to import foomodule in other scripts.  And if I modify the module's source code, will I need to perform any additional commands?
Packages installed by easy_install tend to come from snapshots of the developer's version control, generally made when the developer releases an official version.  You're therefore going to have to choose between convenient automatic downloads via easy_install and up-to-the-minute code updates via version control.  If you pick the latter, you can build and install most packages seen in the python package index directly from a version control checkout by running python setup.py install.
If you don't like the default installation directory, you can install to a custom location instead, and export a PYTHONPATH environment variable whose value is the path of the installed package's parent folder.
Best practice for installing python modules from an arbitrary VCS repository