Python3 ve python3m çalıştırılabilir dosyaları arasındaki fark


116

/usr/bin/python3Ve /usr/bin/python3myürütülebilir dosyalar arasındaki fark nedir ?

Onları Ubuntu 13.04'te gözlemliyorum, ancak Google diğer dağıtımlarda da var olduklarını öne sürüyor.

İki dosya aynı md5sum değerine sahip, ancak sembolik bağlar veya sabit bağlar gibi görünmüyor; iki dosyanın döndürdüğü farklı inode numaraları vardır ls -live test find -xdev -samefile /usr/bin/python3.3başka bir dosya döndürmez.

Birisi AskUbuntu'da benzer bir soru sordu , ancak iki dosya arasındaki fark hakkında daha fazla bilgi edinmek istedim.


11
Bu, bağlantılı soruya verilen yanıtta belirtilen KEP'de kapsanmaktadır .
chepner

Ah teşekkürler! Bu soruyu yazmadan önce, BEP'in ilk birkaç satırını okudum, ancak hepsini okuyamayacak kadar tembel
davrandım

Yanıtlar:


117

Bunun için kredi, çözümle zaten bağlantım olduğunu belirttiği için chepner'a gidiyor .

Python uygulamaları, uygun olduğu şekilde dosya adı etiketinde ek işaretler içerebilir. Örneğin, POSIX sistemlerinde bu bayraklar dosya adına da katkıda bulunur:

--with-pydebug (bayrak: d)

--with-pymalloc (bayrak: m)

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

PEP 3149 aracılığıyla .

mÖzellikle bayrakla ilgili olarak, Pymalloc şudur:

Vladimir Marangozov tarafından yazılmış özel bir nesne ayırıcı olan Pymalloc, Python 2.1'e eklenen bir özellikti. Pymalloc'un malloc () sisteminden daha hızlı olması ve Python programlarına özgü ayırma kalıpları için daha az bellek ek yüküne sahip olması amaçlanmıştır. Ayırıcı, büyük bellek havuzları elde etmek için C'nin malloc () işlevini kullanır ve ardından bu havuzlardan daha küçük bellek isteklerini yerine getirir.

Python 2.3'teki Yenilikler aracılığıyla

Son olarak, iki dosya bazı sistemlerde sabit bağlantılı olabilir. Ubuntu 13.04 sistemimde iki dosya farklı inode numaralarına sahipken (dolayısıyla farklı dosyalar), iki yıl önceki bir comp.lang.python gönderisi , bunların bir zamanlar sabit bağlantılı olduklarını gösteriyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.