[Tutor] if __name__=='main' vs entry points: What to teach new comers?
Wolfgang Maier
wolfgang.maier at biologie.uni-freiburg.de
Wed Aug 2 12:06:24 EDT 2017
On 08/02/2017 04:57 PM, Steven D'Aprano wrote:
> On Wed, Aug 02, 2017 at 10:48:39PM +1000, Ben Finney wrote:
>> Thomas Güttler <guettliml at thomas-guettler.de> writes:
>>
>>> Maybe I am doing something wrong. I was proud because I did use
>>> “console_scripts” entry points.
>>
>> Did someone lead you to believe it was wrong? Setuptools console_scripts
>> entry points are a good tool.
>>
>> My point was that it is an *advanced* tool, difficult to use and also
>> difficult to explain because the concepts are advanced.
>
> Can you explain the use-case for when somebody might want to use
> console_scripts entry points?
>
> I have a module with a main() function and an "if __name__ == ..."
> guard. Under what circumstances is that not sufficient, and I would want
> console_scripts?
>
If you install things using pip/setuptools and have defined a
console_scripts entry point for it, then the corresponding wrapper
script will be installed in whatever is considered the scripts directory
at install time on that machine. With a bit of luck the entry point will
thus be executable directly without any end-user intervention (like
adding folders to $PATH and chmodding files).
Personally, I always found it straightforward to write the wrapper
script myself, then define this as a 'scripts' file in the package
layout of my setup.py, but people's MMV.
More information about the Tutor
mailing list