[Distutils] Distribute bootstrap question

Doug Hellmann doug.hellmann at gmail.com
Mon Jan 18 14:44:51 CET 2010


I just released my first new piece of software using Distribute, and  
I'm still confused about whether I have the packaging correct.  I  
think not, because a user has reported receiving a SandboxViolation  
error when trying to install the package with easy_install (bug report  
at: http://bitbucket.org/dhellmann/ical2org/issue/1/unable-to-install-ical2org-with) 
.  The relevant portion of the error message seems to be:

Searching for distribute
Reading http://pypi.python.org/simple/distribute/
Reading http://packages.python.org/distribute
Best match: distribute 0.6.10
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.10.tar.gz#md5 
=99fb4b3e4ef0861bba11aa1905e89fed
Processing distribute-0.6.10.tar.gz
Running distribute-0.6.10/setup.py -q bdist_egg --dist-dir /tmp/ 
easy_install-aO9HwB/distribute-0.6.10/egg-dist-tmp-woULY8
Before install bootstrap.
Scanning installed packages
Setuptools installation detected at /System/Library/Frameworks/ 
Python.framework/Versions/2.5/Extras/lib/python
Non-egg installation
Removing elements out of the way...
Renaming /System/Library/Frameworks/Python.framework/Versions/2.5/ 
Extras/lib/python/setuptools-0.6c7-py2.5.egg-info into /System/Library/ 
Frameworks/Python.framework/Versions/2.5/Extras/lib/python/ 
setuptools-0.6c7-py2.5.egg-info.OLD.1263800301.89
error: SandboxViolation: mkdir('/System/Library/Frameworks/ 
Python.framework/Versions/2.5/Extras/lib/python/setuptools-0.6c7- 
py2.5.egg-info',) {}

That looks like the script is trying to install Distribute itself,  
based I suppose on having it in the install_requires list in my  
setup.py.  I added distribute to install_requires after on an apparent  
misreading of the instructions on http://pypi.python.org/pypi/ 
distribute.

So, my questions:

1. While researching the problem this morning, I came across the  
instructions at http://packages.python.org/distribute/setuptools.html#using-setuptools-without-bundling-it 
, which seem like a much more sensible way to bootstrap the  
installation of Distribute than install_requires.  Should I have used  
that instead of install_requires?

2. If I don't require Distribute for installation, will my package  
work with the older setuptools (assuming I'm not using any Distribute- 
specific features, which I don't think I am, but I'm not sure I know  
what those are).  In a nutshell, do I need to force my user to install  
Distribute at all before using my package?  And if so, what is the  
preferred way of doing that?

Thanks,
Doug



More information about the Distutils-SIG mailing list