Quoth Andrew Dalke, on 07 April 1999:
Quick clarification question, then.
Quick answer: while still_confused: read_page ('http://www.python.org/doc/essays/packages.html') Longer answer:
What do you call a single file which is placed in python1.5/site-packages/something.py
and referenced via 'import something'
I call that a module. But that's not the only kind of module!
and what do you call a set of files contained in a directory named 'something_else', placed in
python1.5/site-packages/something_else/*
and contains the __init__.py to tell Python that this importable via
import something_else
I call that a package. But remember, a package is also a module!
Is something == 'module' and something_else == 'package' ?
So yes, this is correct.
If so, I want to change my name for the first (currently is 'classes', for lack of a better word) and the second from 'module' to 'package'.
Calling a module "classes" is ugly and doesn't tell the whole story (a module can also provide functions and global variables!). Calling a package a module is *very* confusing! I definitely think you should make this change. Here's my take on packages and modules in Python: A Python source file ending in ".py" and living in a directory on sys.path is a "module". But this isn't the only kind of module. A directory living on sys.path containing a file called "__init__.py" is a special kind of module called a "package". A platform-specific dynamically loaded file on sys.path might also be a module, usually called an "extension module". In general, modules can provide any kind of Python object, where something "provided by" a module may be directly pulled into another namespace using "from module import name", or accessed via the module as "module.name". Usually, packages only provide other modules, but they can provide classes, functions, variables, etc. Usually, "pure Python" modules provide classes, functions, and variables, but they can provide other modules (eg. 'os' provides a module called 'path'). And usually, extension modules only provide functions and variables -- my understanding is that they cannot provided classes, and I have no idea what the other hard-and-fast limitations on extension modules are (I really have to play around more there!). Assuming all that is correct, I hope that clears things up! (And if anything up there is *not* correct, somebody tell me soon before I hard-code my misunderstandings in the Distutils...) Greg -- Greg Ward - software developer gward@cnri.reston.va.us Corporation for National Research Initiatives 1895 Preston White Drive voice: +1-703-620-8990 Reston, Virginia, USA 20191-5434 fax: +1-703-620-0913