continuing development on modules after they're installed

H

hoesley

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!
 
I

Ian

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.

HTH,
Ian
 
J

Jonathan Gardner

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,149
Members
46,695
Latest member
StanleyDri

Latest Threads

Top