[Distutils] Adding entry points into Distutils ?

Doug Hellmann doug.hellmann at gmail.com
Thu May 7 15:50:15 CEST 2009

On May 7, 2009, at 8:54 AM, Paul Moore wrote:

> 2009/5/7 Doug Hellmann <doug.hellmann at gmail.com>:
>> I would argue the other way.  Why force authors of console scripts  
>> to deal
>> with entry points instead of just installing the script as-is?
> Please explain "as-is" with reference to ensuring that the script
> works cross-platform. I think the benefit of entry points for scripts
> is that it generates appropriate wrappers to allow use on all
> platforms.

I write a python script call hello.py like this:

	#!/usr/bin/env python

	def main():
		print 'hello!'

	if __name__ == '__main__':

Why make me define an entry point for that?  I can just put it in /usr/ 
bin or somewhere in the path on Windows and call it as "hello.py".

Does setuptools give me something extra for Windows?  I'm not a  
regular Windows user, so it's likely that there are features I don't  
know about.

> Having said that, I find setuptools entry points to be
> over-engineered, and the Windows wrappers (in particular, the fact
> that they are not version-independent) to be somewhat clumsy. But as a
> concept, I like the idea of having a way of specifying that a script
> is intended as an "executable", and having distutils do the job of
> generating whatever platform cruft is required [1] to make that work.

That's the part I'm not clear about.  What "cruft" is needed anywhere?

> Of course, for even remotely modern Python versions, I'd argue
> strongly that packages shouldn't be including console scripts, but
> should rather be supplying modules that can be run as scripts, via the
> -m argument to python. Users can then build aliases, shell scripts, or
> whatever is appropriate based on that.
> Paul.
> [1] And note especially that .bat files are *not* suitable wrappers on
> Windows, in spite of the fact that they are commonly used. Their
> biggest disadvantage is that they don't nest.

More information about the Distutils-SIG mailing list