python3和python3m可执行文件之间的区别

时间:2013-05-21 17:19:44

标签: python python-3.x

/usr/bin/python3/usr/bin/python3m可执行文件之间有什么区别?

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

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

有人问过similar question on AskUbuntu,但我想了解更多有关这两个文件之间差异的信息。

1 个答案:

答案 0 :(得分:92)

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

  

Python实现可以在文件名中包含其他标志   标签酌情。例如,在POSIX系统上,这些标志会   也有助于文件名:

     

- with-pydebug(flag:d)

     

- with-pymalloc(flag:m)

     

- with-wide-unicode(flag:u)

通过PEP 3149

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

  

Pymalloc,一个由Vladimir编写的专用对象分配器   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显示它们曾经被硬链接。