[Distutils] shal we redefine "module" and "package"?
zooko at zooko.com
Thu May 1 00:21:13 CEST 2008
Here's an experiment you can perform. Round up a Python programmer
and ask him the following three questions:
Q1. You type "import foo" and it works. What kind of thing is foo?
Q2. You go to the Python package index and download something named
"bar-1.0.0.tar.gz". What kind of thing is bar?
Q3. What is a "distribution"?
I'm willing to bet that you will get the following answers:
A1. foo is a module.
A2. bar is a package.
A3. A distribution is a version of Linux that comes with a lot of
Unfortunately these answers aren't quite right. A "package" is
actually a directory containing an __init__.py file, and a
distribution is actually what you think of when you say "package" --
a reusable package of Python code that you can, for example, get from
the Python package index.
Educational efforts such as the Python tutorial and the distutils
docs have not succeeded in training Python programmers to understand
the terminology for these things as used by the Python implementors,
so perhaps instead the implementors should start using the
terminology understood by the programmers:
1. A "module" shall henceforth be the name for either a foo.py file
(a single-file module), or a directory with an __init__.py in it (a
2. A "package" shall henceforth be the name of the thing that is
currently called a "distribution".
who doesn't mind stirring up trouble on occasion...
More information about the Distutils-SIG