[Python-Dev] shal we redefine "module" and "package"?

zooko zooko at zooko.com
Thu May 1 00:21:13 CEST 2008


Folks:

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  
Free Software.


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  
directory module).

2.  A "package" shall henceforth be the name of the thing that is  
currently called a "distribution".


Regards,

Zooko

who doesn't mind stirring up trouble on occasion...



More information about the Python-Dev mailing list