2013-05-21 136 views
68

/usr/bin/python3/usr/bin/python3m可執行文件有什麼區別?python3和python3m可執行文件之間的區別

我在Ubuntu 13.04上觀察它們,但Google建議它們也存在於其他發行版上。

這兩個文件具有相同的md5sum,但似乎不是符號鏈接或硬鏈接;這兩個文件有不同的inode編號,由ls -li返回,並且測試find -xdev -samefile /usr/bin/python3.3不返回任何其他文件。

有人問了similar question on AskUbuntu,但我想了解更多關於這兩個文件之間的區別。

+7

這包括在鏈接問題的答案中提到的[PEP](http://www.python.org/dev/peps/pep-3149/)中。 – chepner

+0

啊,謝謝!在寫這個問題之前,我讀了PEP的前幾行,但卻懶得讀完整個東西...... –

回答

66

對此的信貸去chepner指出我已經有解決方案的鏈接。

Python實現可以根據需要在文件名 標記中包含附加標誌。例如,在POSIX系統這些標誌將 也向文件名:

--with-pydebug(標記:d)

--with-pymalloc(標記:米)

- -w-unicode(flag:u)

via PEP 3149

關於m標誌明確,這是Pymalloc是什麼:

Pymalloc,弗拉基米爾 Marangozov寫了一個專門的對象分配器,是一個功能加入到了Python 2.1。 Pymalloc旨在使 比系統malloc()更快,並且對於Python程序的典型分配模式,其內存開銷更低( )。分配器使用C的malloc()函數獲取大容量的內存池,然後滿足來自這些池的較小內存請求。

通過What's New in Python 2.3

最後,這兩個文件可能在某些系統上進行硬鏈接。雖然這兩個文件在我的Ubuntu 13.04系統上具有不同的inode編號(因此是不同的文件),但comp.lang.python post from two years ago顯示他們曾經是硬鏈接的。

相關問題