1. ホーム
  2. python

[解決済み] python3とpython3mの実行ファイルの違いについて

2022-06-14 11:30:18

質問

の違いは何ですか? /usr/bin/python3/usr/bin/python3m を実行するか?

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

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

誰かが に似たような質問をしました。 という質問がありましたが、私はこの 2 つのファイルの違いについてもっと知りたいと思いました。

どのように解決するのですか?

この件に関するクレジットは チェプナー が解決策へのリンクをすでに持っていることを指摘してくれたことに感謝します。

Python の実装では、必要に応じてファイル名 タグに追加フラグを含めても構いません。例えば、POSIX システムでは以下のフラグがあります。 もファイル名に寄与します。

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

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

--wide-unicodeを含む (フラグ: u)

を経由して PEP 3149 .

については m フラグを具体的に説明すると、Pymallocはこうです。

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

を経由して Python 2.3での新機能

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