Launching a Script on the Linux Platform

Barry barry at barrys-emacs.org
Tue Nov 19 09:08:08 EST 2019



> On 18 Nov 2019, at 22:42, Wildman via Python-list <python-list at python.org> wrote:
> 
> On Mon, 18 Nov 2019 22:15:31 +0100, Peter J. Holzer wrote:
> 
>>> On 2019-11-18 15:01:57 -0600, Wildman via Python-list wrote:
>>> On Tue, 19 Nov 2019 05:09:07 +1100, Chris Angelico wrote:
>>>> On Tue, Nov 19, 2019 at 5:06 AM Wildman via Python-list
>>>> <python-list at python.org> wrote:
>>>>> On Sun, 17 Nov 2019 18:27:45 +0000, Barry Scott wrote:
>>>>>> Because you are installing from a deb you know the exact path to the python you
>>>>>> need to use. There is no need to use the /usr/bin/env to search the path and
>>>>>> potential break your code, because a version of python that you do not expect is on
>>>>>> the path.
>>>>> 
>>>>> I don't understand.  The deb does not install python so I
>>>>> fail to see how I would know the exact path.
>>>>> 
>>>>> As to env breaking my code, never heard of such a thing.
>>>>> 
>>>> 
>>>> The deb should depend on an appropriate Python package. Then you can
>>>> assume and expect that this version of Python is installed.
>>> 
>>> Yes, of course, python(3) is listed as a "depends" in the deb
>>> control file.  That does insure that python is installed but
>>> in no way does that tell me the path of the python executable.
>> 
>> The debian packaging guidelines tell you where the execuable has to be.
>> If you install the python package you can be very sure that the
>> executable will be in /usr/bin. And this is the executable you want to
>> use. You don't want to use some other random program called "python"
>> (which may or may not be an interpreter for some version of the Python
>> language) which just happens to be in the user's path.
>> 
>>        hp
> 
> Yes, /usr/bin is the likely place to find the python executable
> but a guideline is not a guarantee.  

It will be in /usr/bin because the python package cannot change that with
users getting very upset.

> I have always been taught
> it is never a good idea to use a hard path unless it is something
> installed with your program or something created by your program.
> That approach has not failed me.

That is not true for packagers, the reverse is true use exact paths.

The use of env to find a program on the path is reasonable if you cannot know
where python might be installed. Often the case when publishing scripts.

Barry

> 
> -- 
> <Wildman> GNU/Linux user #557453
> The cow died so I don't need your bull!
> -- 
> https://mail.python.org/mailman/listinfo/python-list
> 



More information about the Python-list mailing list