Re: continuing development on modules after they're installed



On Fri, Dec 10, 2010 at 9:32 AM, Ian <ian.g.kelly@xxxxxxxxx> wrote:
On Dec 10, 9:57 am, hoesley <hoes...@xxxxxxxxx> wrote:
I just started using distutils to install the modules I'm working on
to site-packages. Now, however, if I make changes in my development
directory, then import the modules into python, it always loads up the
installed version. Thus, I can't continue development without first
uninstalling the modules I'm working on, so that the interpreter finds
them in the local directory instead of site-packages. Is there any
simple way around this? I figure this must be a very common thing to
encounter. Thanks!

Do you need the installed version to be distinct from the development
version?  If not, you can "install" the module using a simple soft
link (on Unix) or a .pth file (on Windows) that points to your
development directory.

If you do need them to be distinct, a simple way to preferentially get
the development version is to add it to the *beginning* of sys.path:

sys.path.insert(0, '/path/to/development/directory/')

This process can be simplified further by putting it in a
PYTHONSTARTUP script.


A simpler way to do this is to use virtualenv.

$ virtualenv --no-site-packages YourEnv
$ . YourEnv/bin/activate
$ cd YourProject
$ python setup.py develop

(I'm not sure on the Windows commands, although I assume they exist
and are just as trivial as the Unix ones.)

Now, there is a link from the lib/python2.6/site-packages files to
YourProject. (Or Python2.7 or whatever version you are using.)

I'd also look at using Paster to create the package. It gives you a
pretty decent setup for straight up Python packages.

--
Jonathan Gardner
jgardner@xxxxxxxxxxxxxxxxxxx
.