What's the difference between python3.7 and python3.7m

i found the sha256 of python3.7 is the same as the python3.7m. so do you know What’s the difference between python3.7 and python3.7m.

[root@localhost bin]# sha256sum python3.7
7f72a2379b87f31188077edb7674f79101ab8661e047ef6ee80476187e382a9f  python3.7
[root@localhost bin]# sha256sum python3.7m
7f72a2379b87f31188077edb7674f79101ab8661e047ef6ee80476187e382a9f  python3.7m

If the sha256 check sums are the same, the files are the same.

Python executables with the “m” suffix are using the PyMalloc memory allocator. Chances are that your python3.7 is a hardlink to the python3.7m file; if not, it is a copy of it.

It looks like that since at least Python 3.8:

  • pymalloc is complied in by default
  • usage of pymalloc vs malloc can be changed at runtime
  • the choice does not make any difference in the ABI

So in the current versions there is normally no more need to make two distinct versions of the python binary.

Python 3.7 will be end of life in one year so it is best to start using newer versions.