[Distutils] ANN: buildutils-0.1.0 - Distutils extensions for developing Python libraries and applications.

Ryan Tomayko rtomayko at gmail.com
Fri Jul 8 17:16:25 CEST 2005

On Jul 7, 2005, at 1:12 PM, Phillip J. Eby wrote:
> Interestingly, there's some overlap between the commands as they  
> exist now.  For example, your 'use' command could use the  
> setuptools "develop" command to install and uninstall development  
> eggs safely on all platforms (note that Windows doesn't do  
> symlinks) and your code is making a false assumption that .egg-info  
> will always be in the package checkout's root.  It might be better  
> to have your 'use' command just be a wrapper for running the  
> 'develop' command in each of the named projects, so that those  
> details will work right.  (i.e., AFAICT 'use' is short for cd-ing  
> to each project and doing "pbu develop".)

[warning: epiphany occurs half way through this message, read  
entirely before responding]

Ah yes. I just sat down to take a look at the use command and I  
remember now the problem I was trying to solve. The develop command  
seems to rely on modifying the easy_install.pth in the site-packages  
directory and works much like Bob Ippolito's description of  
developing with pth files [1].

While this isn't a huge problem for me right now, there are times  
where I'd prefer to either not modify sys.path for all other python  
applications or will not have permissions to modify site-packages.  
Ideally, I'd like to only modify the directory of the project I'm  
working on and possibly the directory of the project I'm using.

Now that I've said all that, it occurs to me that this might all be  
possible now.

Ah yes, it is. Forgive me, I'm not trying hard enough.

Let's say I have three projects:


If I want to use the development version of kid from buildutils, I  
would do:

     cd devel/kid
     python setup.py develop --install-dir=../buildutils --script- 
dir=../buildutils -m

And now as long as I start python within the devel/buildutils  
directory, everything seems to work just as I would have hoped.

Very nice, Phillip.

I may still leave the use command in tact and have it perform these  
commands on multiple projects the way it does today. For example, if  
I wanted to use the development versions of kid and pudge from  

     pbu use --projects=kid,pudge

And to no longer use those projects:

     pbu use --stop --projects=kid,pudge

Rock on.

Ryan Tomayko
                                  rtomayko at gmail.com

[1] http://bob.pythonmac.org/archives/2005/02/06/using-pth-files-for- 

More information about the Distutils-SIG mailing list