Difference between python3 and python3m executables

PythonPython 3.x

Python Problem Overview


What is the difference between the /usr/bin/python3 and /usr/bin/python3m executibles?

I am observing them on Ubuntu 13.04, but Google suggests that they exist on other distributions too.

The two files have the same md5sum, but do not seem to be symbolic links or hard links; the two files have different inode numbers returned by ls -li and testing find -xdev -samefile /usr/bin/python3.3 does not return any other files.

Someone asked a similar question on AskUbuntu, but I wanted to find out more about the difference between the two files.

Python Solutions


Solution 1 - Python

Credit for this goes to chepner for pointing out that I already had the link to the solution.

> Python implementations MAY include additional flags in the file name > tag as appropriate. For example, on POSIX systems these flags will > also contribute to the file name: > > --with-pydebug (flag: d) > > --with-pymalloc (flag: m) > > --with-wide-unicode (flag: u)

via PEP 3149.

Regarding the m flag specifically, this is what Pymalloc is:

> Pymalloc, a specialized object allocator written by Vladimir > Marangozov, was a feature added to Python 2.1. Pymalloc is intended to > be faster than the system malloc() and to have less memory overhead > for allocation patterns typical of Python programs. The allocator uses > C's malloc() function to get large pools of memory and then fulfills > smaller memory requests from these pools.

via What's New in Python 2.3

Finally, the two files may be hardlinked on some systems. While the two files have different inode numbers on my Ubuntu 13.04 system (thus are different files), a comp.lang.python post from two years ago shows that they once were hardlinked.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJames MishraView Question on Stackoverflow
Solution 1 - PythonJames MishraView Answer on Stackoverflow