Frage Unterschied zwischen den ausführbaren Dateien python3 und python3m


Was ist der Unterschied zwischen den? /usr/bin/python3 und /usr/bin/python3m ausführbar?

Ich beobachte sie auf Ubuntu 13.04, aber Google schlägt vor, dass sie auch auf anderen Distributionen existieren.

Die beiden Dateien haben die gleiche md5sum, scheinen aber keine symbolischen oder harten Links zu sein; Die zwei Dateien haben unterschiedliche Inode-Nummern, die von zurückgegeben werden ls -li und testen find -xdev -samefile /usr/bin/python3.3 gibt keine anderen Dateien zurück.

Jemand fragte ein ähnliche Frage auf AskUbuntu, aber ich wollte mehr über den Unterschied zwischen den beiden Dateien herausfinden.


75
2018-05-21 17:19


Ursprung


Antworten:


Kredit dafür geht an Chepner um darauf hinzuweisen, dass ich bereits die Verbindung zur Lösung hatte.

Python-Implementierungen können zusätzliche Flags im Dateinamen enthalten   passend markieren. Auf POSIX-Systemen werden diese Flags z   auch zum Dateinamen beitragen:

--mit-Pydebug (Flagge: d)

--mit-pymalloc (Flagge: m)

--mit-weit-Unicode (Flagge: u)

über PEP 3149.

Bezüglich der m speziell kennzeichnen, das ist, was Pymalloc ist:

Pymalloc, ein spezialisierter Objektverteiler, geschrieben von Vladimir   Marangozov, war eine Funktion zu Python 2.1 hinzugefügt. Pymalloc ist dafür gedacht   sei schneller als das System malloc () und habe weniger Speicheraufwand   für Allokationsmuster, die typisch für Python-Programme sind. Der Zuordner verwendet   C's malloc () Funktion, um große Speicherpools zu erhalten und dann zu erfüllen   kleinere Speicheranforderungen von diesen Pools.

über Was ist neu in Python 2.3?

Schließlich können die beiden Dateien auf einigen Systemen fest verkabelt sein. Während die beiden Dateien auf meinem Ubuntu 13.04-System unterschiedliche Inode-Nummern haben (also verschiedene Dateien), a comp.lang.python Post von vor zwei Jahren zeigt, dass sie einmal fest verbunden waren.


71
2018-05-21 18:48