Python3.<x>和Python3.<x>m有什么区别?

61
  • mpython3.6m代表什么?
  • 它与非m版本有何不同?
  • 在哪种情况下我会选择使用python3.6m而不是python3.6
1个回答

70

python3.6m 中的 m 是什么意思?

这表示 Python 配置时使用了 --with-pymalloc,它启用了一个专门的内存分配实现,比系统的malloc更快。

与非 m 版本有什么区别?

m 版本显然没有配置该选项。

在什么情况下我应该使用 python3.6m 而不是 python3.6

在编写C扩展时可能会更有用,一般情况下不需要担心此事。


7
这个答案听起来很令人满意,但当我的机器告诉我这两个可执行文件的大小恰好是4576440字节时,情况就不同了(在一个相当干净的Ubuntu 18.04服务器上安装)。我要求知道为什么它们至少没有符号链接到彼此。浪费磁盘空间,抱怨不已。 - Steven Lu
4
是的,它们的SHA1哈希值也相同。 - Steven Lu
@StevenLu 应用程序可能根据其调用名称选择不同的行为方式。虽然对于这种特定情况我不太确定。 - ratijas
7
如果Python M更快,为什么不完全使用它? - Kevin Buchs
7
在我的系统中,它们是相同的:ls -i python3.7 python3.7m 告诉我们 python3.7python3.7m 的 inode 号都是 8943110,也就是它们指向同一个文件。这是一个硬链接。我猜测这么做是为了让 #!/usr/bin/env python3.7m 能够正常工作? - Martin Tournoij
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接