Diferença entre os executáveis ​​python3 e python3m

116

Qual é a diferença entre os executáveis /usr/bin/python3e /usr/bin/python3m?

Estou observando-os no Ubuntu 13.04, mas o Google sugere que eles existem em outras distribuições também.

Os dois arquivos têm o mesmo md5sum, mas não parecem ser links simbólicos ou links físicos; os dois arquivos têm números de inode diferentes retornados por ls -lie o teste find -xdev -samefile /usr/bin/python3.3não retorna nenhum outro arquivo.

Alguém fez uma pergunta semelhante no AskUbuntu , mas eu queria saber mais sobre a diferença entre os dois arquivos.

James Mishra
fonte
11
Isso é abordado no PEP mencionado na resposta à pergunta vinculada.
chepner de
Ah obrigado! Antes de escrever esta pergunta, li as primeiras linhas do PEP, mas estava com preguiça de ler tudo ...
James Mishra

Respostas:

117

O crédito por isso vai para chepner por apontar que eu já tinha o link para a solução.

As implementações do Python PODEM incluir sinalizadores adicionais na tag do nome do arquivo, conforme apropriado. Por exemplo, em sistemas POSIX, esses sinalizadores também contribuirão para o nome do arquivo:

--with-pydebug (sinalizador: d)

--with-pymalloc (sinalizador: m)

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

via PEP 3149 .

Em relação à mbandeira especificamente, é isso que Pymalloc é:

Pymalloc, um alocador de objetos especializado escrito por Vladimir Marangozov, foi um recurso adicionado ao Python 2.1. O objetivo do Pymalloc é ser mais rápido do que o sistema malloc () e ter menos sobrecarga de memória para padrões de alocação típicos de programas Python. O alocador usa a função malloc () do C para obter grandes pools de memória e, em seguida, atende a solicitações de memória menores desses pools.

via O que há de novo no Python 2.3

Finalmente, os dois arquivos podem ter links físicos em alguns sistemas. Embora os dois arquivos tenham números de inode diferentes em meu sistema Ubuntu 13.04 (portanto, são arquivos diferentes), uma postagem de comp.lang.python de dois anos atrás mostra que antes eles tinham um link físico.

James Mishra
fonte