Différence entre les exécutables python3 et python3m

116

Quelle est la différence entre les /usr/bin/python3et les /usr/bin/python3mexécutables?

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

Les deux fichiers ont la même somme md5, mais ne semblent pas être des liens symboliques ou des liens physiques; les deux fichiers ont des numéros d'inœuds différents renvoyés par ls -liet testing find -xdev -samefile /usr/bin/python3.3ne renvoie aucun autre fichier.

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

James Mishra
la source
11
Ceci est couvert dans le PEP mentionné dans la réponse à la question liée.
chepner
Ah merci! Avant d'écrire cette question, j'ai lu les premières lignes du PEP, mais j'étais trop paresseux pour tout lire ...
James Mishra

Réponses:

117

Le mérite en revient à Chepner d' avoir souligné que j'avais déjà le lien vers la solution.

Les implémentations Python PEUVENT inclure des indicateurs supplémentaires dans la balise de nom de fichier, le cas échéant. Par exemple, sur les systèmes POSIX, ces indicateurs contribueront également au nom du fichier:

--with-pydebug (drapeau: d)

--with-pymalloc (drapeau: m)

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

via PEP 3149 .

En ce qui concerne mspécifiquement le drapeau, voici ce qu'est Pymalloc:

Pymalloc, un allocateur d'objets spécialisé écrit par Vladimir Marangozov, était 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 modèles d'allocation typiques des programmes Python. L'allocateur utilise la fonction malloc () de C pour obtenir de grands pools de mémoire, puis répond aux demandes de mémoire plus petites de ces pools.

via Quoi de neuf dans Python 2.3

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

James Mishra
la source