[Distutils] EasyInstall: Issue: wrapper script weirdness

Phillip J. Eby pje at telecommunity.com
Mon Jun 20 17:20:40 CEST 2005

At 11:32 PM 6/19/2005 -0400, Ryan Tomayko wrote:
>It would probably be best to make py.lib's scripts a little less
>complex (installing _findpy.py as a script doesn't strike me as an
>elegant approach).

I think there's probably a trivial fix - add _findpy to the 'py_modules' 
list in setup.py, and remove it from 'scripts'.

>On the other hand, the way setuptools lays out
>sys.path when wrapper scripts are invoked results in unexpected
>behavior. If a script is importing a module it believes to be in the
>same directory, it is definitely not wanting to import the wrapper
>version. It may be best to remove the wrapper script directory from
>sys.path entirely or at least push it back behind the PKG-INFO/ scripts 
>directory. I can't think of a single scenario where a wrapped
>script would want to import another wrapper.

Well, it does occur to me that the part of EasyInstall that's broken here 
is the assumption that a wrapper will be run as __main__.  What probably 
ought to happen is that if you do import something as a wrapper script, is 
that it ought to either:

1. work (by running the script in whatever module it is)
2. barf (and tell you what package is broken)
3. punt (by trying to replace itself with a module of the same name later 
on the path)

Unfortunately I can think of scenarios where each of these is the "right 
thing" to do.  #1 should work for py.test, but #3 makes more sense if the 
importee is not from the same package as the importer.

My general inclination for now is to fix py.test and see if the issue comes 
up with anything else.  It's easier to get a line on the right fix for 
something when you have more than one example to generalize from.  :)

More information about the Distutils-SIG mailing list