• [^] # Re: Propagande /usr/bin/env ?

    Posté par (site web personnel) . En réponse à la dépêche Python — partie 2 ―Python 2. Évalué à 9. Dernière modification le 08 septembre 2019 à 22:49.

    Discussion connexe en mai : https://linuxfr.org/users/raphj/journaux/shebang-usr-bin-env-sh-teste-et-approuve

    Pour répondre directement à ta question : si j'ai un autre Python dans mon $PATH que celui du système, c'est probablement que j'ai envie que ça soit celui-là qui soit utilisé. En tant qu'utilisateur simple sur une machine, c'est d'ailleurs ma seule manière de choisir l'interpréteur Python à utiliser.

    Je connais très peu les environnement virtuels Python (virtual env) mais ils sont relativement répandus et je suppose que le shebang peut avoir un impact sur leur bon fonctionnement.

    Argument d'autorité : si c'est ce qui est préconisé par les concepteurs du langage eux-même, c'est que ça ne doit pas être trop mal non plus et par défaut, j'aurais tendance à suivre le conseil.

    Dans le lien que tu donnes, la personne pointe un désavantage : c'est qu'on ne peut pas passer d'argument à l'interpréteur. Mais en Python, on s'en fiche un peu. L'autre désavantage pointé c'est le fait qu'un script Python peut se comporter différemment selon l'utilisateur qui lance le script parce qu'il aura peut-être un autre interpréteur, mais je dirais que c'est une fonctionnalité plus qu'un bogue. D'ailleurs la personne présente ce comportement aussi comme un avantage...

    Sinon, quand j'utilise Termux sous Android, Python n'est pas à l'emplacement /usr/bin/python. env non plus n'est pas à l'emplacement /usr/bin/env, mais un mécanisme est en place pour contourner ça pour env. Termux n'est probablement pas le seul environnement comme ça.

    Au final, concrètement, je ne vois que des avantages à utiliser #!/usr/bin/env et je trouve que parler de propagande puis demander des arguments, c'est un peu étrange. Est-ce qu'il faudrait justifier toutes les bonnes pratiques / pratiques usuelles au cas où quelqu'un les remette en cause ? Non, je ne pense pas : à la personne qui souhaite les remettre en cause d'argumenter ! (et je suis souvent cette personne...)

    (je ne t'ai pas moinsé)