Pregunta Diferencia entre los ejecutables python3 y python3m


¿Cuál es la diferencia entre el /usr/bin/python3 y /usr/bin/python3m ejecutivos?

Los estoy observando en Ubuntu 13.04, pero Google sugiere que también existen en otras distribuciones.

Los dos archivos tienen el mismo md5sum, pero no parecen enlaces simbólicos o enlaces duros; los dos archivos tienen diferentes números de inodo devueltos por ls -li y prueba find -xdev -samefile /usr/bin/python3.3 no devuelve ningún otro archivo.

Alguien preguntó pregunta similar en AskUbuntu, pero quería saber más sobre la diferencia entre los dos archivos.


75
2018-05-21 17:19


origen


Respuestas:


Crédito por esto va a chepner para señalar que ya tenía el enlace a la solución.

Las implementaciones de Python PUEDEN incluir indicadores adicionales en el nombre del archivo   marque según corresponda Por ejemplo, en los sistemas POSIX estas banderas   también contribuyen al nombre del archivo:

--with-pydebug (bandera: d)

--with-pymalloc (bandera: m)

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

vía PEP 3149.

Con respecto a m bandera específicamente, esto es lo que es Pymalloc:

Pymalloc, un asignador de objetos especializado escrito por Vladimir   Marangozov, fue una característica añadida a Python 2.1. Pymalloc está destinado a   ser más rápido que el sistema malloc () y tener menos sobrecarga de memoria   para los patrones de asignación típicos de los programas de Python. El asignador usa   La función malloc () de C para obtener grandes grupos de memoria y luego cumple   solicitudes de memoria más pequeñas de estos grupos.

vía Qué hay de nuevo en Python 2.3

Finalmente, los dos archivos pueden estar enlazados en algunos sistemas. Si bien los dos archivos tienen diferentes números de inodo en mi sistema Ubuntu 13.04 (por lo tanto, son archivos diferentes), publicación comp.lang.python de hace dos años muestra que una vez estuvieron enlazados.


71
2018-05-21 18:48