Differenza tra eseguibili python3 e python3m


116

Qual è la differenza tra gli eseguibili /usr/bin/python3e /usr/bin/python3m?

Li sto osservando su Ubuntu 13.04, ma Google suggerisce che esistono anche su altre distribuzioni.

I due file hanno lo stesso md5sum, ma non sembrano essere link simbolici o hard link; i due file hanno numeri di inode diversi restituiti da ls -lie testing find -xdev -samefile /usr/bin/python3.3non restituisce altri file.

Qualcuno ha posto una domanda simile su AskUbuntu , ma volevo saperne di più sulla differenza tra i due file.


11
Questo è trattato nel PEP menzionato nella risposta alla domanda collegata.
chepner

Ah, grazie! Prima di scrivere questa domanda, ho letto le prime righe del PEP, ma ero troppo pigro per leggere tutto ...
James Mishra

Risposte:


117

Il merito di ciò va a Chepner per aver sottolineato che avevo già il link alla soluzione.

Le implementazioni di Python POSSONO includere flag aggiuntivi nel tag del nome del file come appropriato. Ad esempio, sui sistemi POSIX questi flag contribuiranno anche al nome del file:

--with-pydebug (flag: d)

--with-pymalloc (flag: m)

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

tramite PEP 3149 .

Per quanto riguarda la mbandiera in particolare, questo è ciò che è Pymalloc:

Pymalloc, un allocatore di oggetti specializzato scritto da Vladimir Marangozov, era una funzionalità aggiunta a Python 2.1. Pymalloc è pensato per essere più veloce del sistema malloc () e per avere meno overhead di memoria per i modelli di allocazione tipici dei programmi Python. L'allocatore utilizza la funzione malloc () di C per ottenere grandi pool di memoria e quindi soddisfa le richieste di memoria più piccole da questi pool.

tramite Novità di Python 2.3

Infine, i due file possono essere collegati come hardlink su alcuni sistemi. Mentre i due file hanno numeri di inode diversi sul mio sistema Ubuntu 13.04 (quindi sono file diversi), un post comp.lang.python di due anni fa mostra che una volta erano collegati come hardlink.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.