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


116

是什么之间的区别/usr/bin/python3/usr/bin/python3mexecutibles?

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

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

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


11
在链接问题的答案中提到的PEP中对此进行了说明。
13年

啊,谢谢你!在写这个问题之前,我阅读了PEP的前几行,但是太懒了,无法阅读整个内容……
James Mishra

Answers:


117

值得称赞的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帖子显示它们曾经被硬链接过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.