137

/usr/bin/python3可执行文件和可执行文件有什么区别/usr/bin/python3m

我在 Ubuntu 13.04 上观察它们,但 Google 建议它们也存在于其他发行版中。

这两个文件有相同的md5sum,但似乎不是符号链接或硬链接;这两个文件具有不同的 inode 编号,ls -li而 testingfind -xdev -samefile /usr/bin/python3.3不返回任何其他文件。

有人在 AskUbuntu 上问了一个类似的问题,但我想了解更多关于这两个文件之间的区别。

4

1 回答 1

135

这要归功于 chepner指出我已经有了解决方案的链接。

Python 实现可以酌情在文件名标签中包含额外的标志。例如,在 POSIX 系统上,这些标志也会影响文件名:

--with-pydebug(标志:d)

--with-pymalloc(标志:m)

--with-wide-unicode(标志:u)

通过PEP 3149

具体关于m标志,这就是 Pymalloc 的含义:

Pymalloc 是由 Vladimir Marangozov 编写的专用对象分配器,是 Python 2.1 中添加的一个特性。Pymalloc 旨在比系统 malloc() 更快,并且对于 Python 程序的典型分配模式具有更少的内存开销。分配器使用 C 的 malloc() 函数来获取大型内存池,然后从这些池中满足较小的内存请求。

通过Python 2.3 中的新增功能

最后,这两个文件可能在某些系统上是硬链接的。虽然这两个文件在我的 Ubuntu 13.04 系统上具有不同的 inode 编号(因此是不同的文件),但两年前的一篇 comp.lang.python 帖子显示它们曾经是硬链接的。

于 2013-05-21T18:48:24.740 回答