[Distutils] EasyInstall: Issue: wrapper script weirdness

Ryan Tomayko rtomayko at gmail.com
Mon Jun 20 18:35:33 CEST 2005


On Jun 20, 2005, at 11:20 AM, Phillip J. Eby wrote:
> 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'.

That does it. I'm not sure there's any down side to this approach so  
I'll propose it to the maintainers.

>> 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.  :)

Agreed.

Ryan Tomayko
                                  rtomayko at gmail.com
                                  http://naeblis.cx/rtomayko/




More information about the Distutils-SIG mailing list