python3とpython3m実行可能ファイルの違い


116

/usr/bin/python3/usr/bin/python3m実行可能ファイルの違いは何ですか?

私はUbuntu 13.04でそれらを観察していますが、Googleは他のディストリビューションにも存在することを示唆しています。

2つのファイルのmd5sumは同じですが、シンボリックリンクまたはハードリンクではないようです。によって返される2つのファイルには異なるiノード番号がls -liあり、テストでfind -xdev -samefile /usr/bin/python3.3は他のファイルは返されません。

誰かがAskUbuntu同様の質問をしましたが、2つのファイルの違いについてもっと知りたいと思いました。


11
これは、リンクされた質問への回答で言及されているPEPでカバーされています。
chepner 2013年

あ、ありがとう!この質問を書く前に、私はPEPの最初の数行を読みましたが、全体を読むのが
面倒

回答:


117

これの功績は、私がすでにソリューションへのリンクを持っていることを指摘したことに対するchepnerにあります。

Pythonの実装では、必要に応じてファイル名タグに追加のフラグを含めることができます。たとえば、POSIXシステムでは、これらのフラグもファイル名に影響します。

--with-pydebug(フラグ:d)

--with-pymalloc(フラグ:m)

--with-wide-unicode(フラグ:u)

PEP 3149経由。

特にmフラグに関しては、これはPymallocが何であるかです:

Vladimir Marangozovによって作成された特殊なオブジェクトアロケータであるPymallocは、Python 2.1に追加された機能です。Pymallocは、システムのmalloc()より高速で、Pythonプログラムに典型的な割り当てパターンのメモリオーバーヘッドを少なくすることを目的としています。アロケータは、Cのmalloc()関数を使用して大きなメモリプールを取得し、これらのプールからの小さなメモリ要求を実行します。

経由のPython 2.3の新機能

最後に、一部のシステムでは2つのファイルがハードリンクされている場合があります。私のUbuntu 13.04システムでは2つのファイルのiノード番号が異なる(したがって、ファイルが異なる)一方で、2年前のcomp.lang.pythonの投稿は、それらがかつてハードリンクされていたことを示しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.