Hello Phillip J. Eby,

I am having trouble setting up an installer package on Mac OS 10.5 that installs setuptools and nose testing for Python 2.5. The installer .pkg drops the payload as a temporary file with the distributions and runs short postinstall script to do the installation of the packages. The scripts I have running are fairly simple:
        
        #!/bin/sh
        cd $2nose_installer_temp
        sh setuptools-0.6c8-py2.5.egg
        easy_install -v nose
        exit 0

When I run the equivalent script as an executable outside of the Installer it works great:

/Users/chris/Documents/PyGraphics/Installer/Nose/resources/ postinstall ; exit; Corbie:~ chris$ /Users/chris/Documents/PyGraphics/Installer/Nose/ resources/postinstall ; exit;
        Processing setuptools-0.6c8-py2.5.egg
Removing /Library/Frameworks/Python.framework/Versions/2.5/lib/ python2.5/site-packages/setuptools-0.6c8-py2.5.egg Copying setuptools-0.6c8-py2.5.egg to /Library/Frameworks/ Python.framework/Versions/2.5/lib/python2.5/site-packages
        setuptools 0.6c8 is already the active version in easy-install.pth
Installing easy_install script to /Library/Frameworks/ Python.framework/Versions/2.5/bin Installing easy_install-2.5 script to /Library/Frameworks/ Python.framework/Versions/2.5/bin

Installed /Library/Frameworks/Python.framework/Versions/2.5/lib/ python2.5/site-packages/setuptools-0.6c8-py2.5.egg
        Processing dependencies for setuptools==0.6c8
        Finished processing dependencies for setuptools==0.6c8
        Searching for nose
        Best match: nose 0.10.3
        Processing nose-0.10.3-py2.5.egg
        nose 0.10.3 is already the active version in easy-install.pth
Installing nosetests script to /Library/Frameworks/Python.framework/ Versions/2.5/bin changing mode of /Library/Frameworks/Python.framework/Versions/2.5/ bin/nosetests to 755

Using /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ site-packages/nose-0.10.3-py2.5.egg
        Processing dependencies for nose
        Finished processing dependencies for nose

Note that this method has the correct default install location.
/Library/Frameworks/Python.framework/Versions/2.5/bin for scripts and / Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site- packages for the modules.

When the SAME script is run as part of the installer package I get:

        error: can't create or remove files in install directory
        The following error occurred while trying to add or remove files in the
        installation directory:

[Errno 2] No such file or directory: '/Library/Python/2.5/site- packages/test-easy-install-4156.write-test'

The installation directory you specified (via --install-dir, -- prefix, or
        the distutils default setting) was:

        /Library/Python/2.5/site-packages/

This directory does not currently exist. Please create it and try again, or choose a different installation directory (using the -d or --install- dir
        option).

It seems like a different default directory is being used and I can't figure out why or how to change that. On top of that, when I try forcing it in various ways (including .cfg files) suggested in the setuptools documentation it says that those directories aren't in the python path as my $PYTHONPATH variable is ''. This is strange, because sys.path DOES come up with the correct paths.

I tried fooling setuptools by assigning the directory to PYTHONPATH and calling the installer then. It manages to get things in the right place, but somehow fails to configure itself properly and throws the following error:

        Corbie:~ chris$ easy_install nose
        Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/Current/bin/ easy_install", line 5, in <module>
           from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.5/ Extras/lib/python/pkg_resources.py", line 2559, in <module>
           parse_requirements(__requires__), Environment()
File "/System/Library/Frameworks/Python.framework/Versions/2.5/ Extras/lib/python/pkg_resources.py", line 518, in resolve
           raise DistributionNotFound(req)  # XXX put more info here
        pkg_resources.DistributionNotFound: setuptools==0.6c8

I don't understand why Is there some quirk of shells that I don't understand, does have it have something to do with different environment variables? Is there something in the behaviour of setuptools.egg that can explain this? Can you think of a way around it?

Sorry for the massive email! and thanks!
Chris Maddison
_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to