[Tutor] setup.py "script" vs "console_scripts" Was: if __name__=='main' vs entry points: What to teach new comers?

Thomas Güttler guettliml at thomas-guettler.de
Thu Aug 3 03:52:26 EDT 2017



Am 02.08.2017 um 18:06 schrieb Wolfgang Maier:
> 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.


I was not aware of "scripts" in setup.py. But I found docs:

   http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html

Why are there two ways: "script" vs "console_scripts entry-point"?

Regards,
   Thomas


-- 
Thomas Guettler http://www.thomas-guettler.de/


More information about the Tutor mailing list