- What does the
m
stand for inpython3.6m
? - How does it differ to non
m
version? - In which case would I prefer to use
python3.6m
rather thanpython3.6
?
Asked
Active
Viewed 2.7k times
61

Dimitris Fasarakis Hilliard
- 150,925
- 31
- 268
- 253

Michael D.
- 1,795
- 2
- 18
- 25
1 Answers
70
What does the
m
stand for inpython3.6m
?
It signifies that Python was configured --with-pymalloc
which enables a specialized implementation for allocating memory that's faster than the system malloc
.
How does it differ to non
m
version?
The non m
version is, obviously, not configured with it.
In which case would I prefer to use
python3.6m
rather thanpython3.6
?
Probably most usefull when writing C
extensions, in general it shouldn't be something you should worry about.

Dimitris Fasarakis Hilliard
- 150,925
- 31
- 268
- 253
-
7This answer sounds satisfying, but not when my machine tells me that both executables are exactly 4576440 bytes in size. (pretty clean ubuntu 18.04 server install). I demand to know why they are at least not symlinked to each other. waste of disk. grumble. – Steven Lu May 03 '18 at 01:49
-
4And yes they have the same SHA1 hash too. – Steven Lu May 04 '18 at 03:47
-
i have noticed that they have different header files, that may be the difference – Diedre May 16 '18 at 18:34
-
@StevenLu app may choose to behave differently depending on its invocation name. not sure about this particular case, though – ratijas Jun 25 '18 at 08:02
-
7if python m is faster, why would one not use that exclusively? – Kevin Buchs Feb 08 '19 at 22:46
-
6@StevenLu On my system they *are* the same: `ls -i python3.7 python3.7m` reports `8943110 python3.7 8943110 python3.7m`; same inode, so same file. It's a hard link. I presume this is done so that `#!/usr/bin/env python3.7m` works? – Martin Tournoij Mar 13 '19 at 09:48
-
sweet! @MartinTournoij – Steven Lu Mar 13 '19 at 13:36