139 votes

Différence entre les exécutables python3 et python3m

Quelle est la différence entre le /usr/bin/python3 y /usr/bin/python3m les exécutables ?

Je les observe sur Ubuntu 13.04, mais Google suggère qu'ils existent aussi sur d'autres distributions.

Les deux fichiers ont le même md5sum, mais ne semblent pas être des liens symboliques ou des liens durs ; les deux fichiers ont des numéros d'inode différents renvoyés par la fonction ls -li et le test find -xdev -samefile /usr/bin/python3.3 ne renvoie pas d'autres fichiers.

Quelqu'un a demandé question similaire sur AskUbuntu mais je voulais en savoir plus sur la différence entre les deux fichiers.

137voto

James Mishra Points 379

Le mérite en revient à chepner pour m'avoir fait remarquer que j'avais déjà le lien vers la solution.

Les implémentations Python PEUVENT inclure des drapeaux supplémentaires dans le nom du fichier selon les besoins. Par exemple, sur les systèmes POSIX, ces drapeaux vont également contribuer au nom du fichier :

--with-pydebug (flag : d)

--with-pymalloc (flag : m)

--with-wide-unicode (flag : u)

via PEP 3149 .

En ce qui concerne le m flag spécifiquement, c'est ce qu'est Pymalloc :

Pymalloc, un allocateur d'objets spécialisé écrit par Vladimir Marangozov, est une fonctionnalité ajoutée à Python 2.1. Pymalloc est destiné à être plus rapide que le système malloc() et avoir moins de surcharge mémoire pour les schémas d'allocation typiques des programmes Python. L'allocateur utilise la fonction malloc() de C pour obtenir de grands pools de mémoire et ensuite remplir des des demandes de mémoire plus petites à partir de ces pools.

via Nouveautés de Python 2.3

Enfin, les deux fichiers peuvent être liés entre eux sur certains systèmes. Alors que les deux fichiers ont des numéros d'inode différents sur mon système Ubuntu 13.04 (ce sont donc des fichiers différents), un fichier comp.lang.python post d'il y a deux ans montre qu'ils étaient autrefois très liés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X