Python vs python3

Tags: #<Tag:0x00007fb8ebeb41e0>

Bonsoir
Lorsque j’appelle python, rien ne se passe. Il est nécessaire d’appeler python3
Mon très mauvais anglais a réussi a me faire percevoir que la méthode par alternative pouvait avoir des effets de bord … fâcheux.
Je me suis contenté de quelque chose à ma portée intellectuelle ; j’ai fait un lien symbolique de /usr/bin/python3 comme /usr/bin/python
Ai-je fait une connerie ?
Merci d’avance de vos avis circonstanciés.

Normal depuis Debian12

https://www.debian.org/doc/packaging-manuals/python-policy/?utm_source=chatgpt.com

@BMr le passage qui t’intéresse est là :

The packages python-is-python3 and python-dev-is-python3 provide the /usr/bin/python , /usr/bin/python-config and /usr/bin/pydoc commands pointing to Python3. These packages can be installed by developers and users to use the unversioned commands. NOTE: Locally installed software not yet ported to Python3 is likely to break when installing these packages.

Petit aparté, c’est vraiment fou de voir toute la doc qui existe sur Debian, je découvre et je suis vraiment impressionné !

1 J'aime

Bonjour Thierz

Oui, et c’est surtout ça qui me manquait et qui m’a fait passer sous Linux.

Quand j’ai commencé à me rendre compte qu’un manuel était installé avec pratiquement chaque programme, je me suis régalé de découvrir tout ça (bien sûr, il m’en reste encore beaucoup à lire).

Mon niveau d’anglais était très faible, alors j’avais mon gros dictionnaire anglais/français à côté de moi, et sans m’en rendre compte, mon niveau en anglais et en informatique ce sont bien améliorés. C’était à l’époque des modems 33K.

Pour pouvoir lire les pages de manuel, j’ai regretté de ne pas avoir appris plus tôt à me servir de la commande less, car c’est le pager less qui est utilisé par la commande man et aussi par beaucoup d’autres commandes et ça fait gagner un temps de fou de savoir utiliser la commande less quand on veut faire des recherches dans les pages des manuels et dans la sortie de certaines commandes.

2 J'aime

Là tu me parles chinois, mais promis je me note de me documenter sur less et man :laughing:

1 J'aime

salut
C’est le script/application que tu utilises qui est codé « en dur » avec python?

il existe un outil pour jongler avec les versions

Bonjour,

Ca fait « longtemps » qu’on ne doit plus faire ainsi, dans les scripts python, mais :

#!/usr/bin/env python3

Ainsi quelque soit la version de python3 installée, le système se débrouille à l’utiliser.
(il paraît que « c mieux »)

2 J'aime

De ce que je comprends, j’ai l’impression qu’il n’est pas dans un script, mais dans le shell en ligne de commande, en train d’essayer d’appeler :

$ python

apt install python-is-python3

2 J'aime

En fait, c’est très simple.

Pour une introduction, entre dans une fenêtre de terminal
la ligne de commande suivante :

man intro

Il existe un manuel pour la commande man que tu pourras lire
en lançant la ligne de commande suivante :

man man

Il y a un manuel pour la commande env

man env

Il y a un manuel pour la commande python

man python

Il y a un manuel pour la commande less

man less

Il y a un manuel pour la commande update-alternatives

man update-alternatives

Etc.

Et donc, il existe plein de manuels qui sont déjà accessibles dans une installation linux, même sans avoir à aller rechercher de la doc sur internet, d’autant que la doc trouvée sur internet ne sera pas forcement à jour, ou/et ne correspondra pas tout-à fait à ce qui est installé sur notre système


Une très grande partie de manuels ont été traduits en français.

Je te laisse le plaisir de découvrir tout ça.

Cordialement.

C’est une très mauvaise idée les liens symbolique.
Outre qu’un certain nombre de programme n’aiment pas les liens symboliques, la sécurité non plus. Car c’est une faille assez commune.

1 J'aime

Quelle(s) faille(s) ?

Tu as le moindre exemple concret ? Ou est-ce encore un pur produit de ton imagination ?


AnonymousCoward

@Zargos J’ai supprimé le lien que j’ai fait, installer le paquet, paquet qui installe … un lien symbolique.

@anon29980398

Pour moi, les minitels « retournés » :slight_smile:

1 J'aime

la vrai réponse c’est d’utiliser python3 au lieu de python

Si tu utilises un « environnement virtuel », à l’aide de logiciels tels que les python3-venv , python3-virtualenv , pyenv ou encore astral uv tu peux alors « activer » cet environnement virtuel et la commande python pointera alors vers la bonne version de Python.

toto@machine:~$ python --version
-bash: python: command not found
toto@machine:~$ source test/.venv/bin/activate
(test) toto@machine:~$ python --version
Python 3.14.0
(test) toto@machine:~$ deactivate
toto@machine:~$ python --version
-bash: python: command not found

Cela permet aussi d’avoir des packages / librairies Python supplémentaires, disponibles uniquement dans le cadre de cet environnement virtuel et qui ne « polluent » pas le reste de l’OS.

On peut aussi faire cela via un shebang comme décrit précédemment par PengouinPdt .


Anonymous Coward

1 J'aime