Am I mistaken in my belief that tkinter is a non-optional part of the
Python language? I installed the "python3" package on Ubuntu, and
tkinter is not included--it's an optional package "python3-tk" that has
to be installed separately. I reported this as a bug as was summarily
slapped down.
Personally, I think that is a silly design by Ubuntu, but tkinter is
optional and they're free to distribute Python with or without it. That
becomes a *quality of implementation* issue: some distributions may be
more complete, easier to install, more up-to-date, etc. than others, but
they're still Python.
There is Python the language, which is distinct from the CPython
implementation (to say nothing of other implementations like Jython,
IronPython, Stackless, PyPy, ...), and then there is the standard
library. Much of the standard library is optional, although unfortunately
the documentation doesn't really make that as clear as it should.
Tkinter depends on you have Tk/Tcl installed, which on Linux and Unix
systems depends on you having X installed. Personally, I think that a
good packaging system should ensure that once you install Tk/Tcl, tkinter
should "just work". But there may be technical reasons why this is
impossible.
If you ever build Python from source, you will often get warnings that it
could not build certain modules. I spent a fruitless couple of hours last
week trying to install Python 2.7 from scratch with sqlite, before giving
up. What I got was still Python 2.7. It was just Python 2.7 without
sqlite (and four or five other modules, which I don't care about and
don't remember).
Can we apply some pressure to Ubuntu to fix this? Python is a trademark,
is it not? Can Ubuntu legally claim that their "Python" package is an
implementation of the language if it does not include the whole
language?
Tkinter is not part of the language. The tkinter module is an interface
to another language, not part of Python the language itself. There are
platforms where Tk/Tcl do not exist, platforms which may not even have a
GUI environment at all. Do you really intend to say that it is forbidden
to have Python on such platforms?