Import - interpreter works but .py import does not

John Machin sjmachin at lexicon.net
Mon Mar 10 05:07:27 CET 2008


On Mar 10, 1:59 pm, John Boy <sla1nte2... at yahoo.com> wrote:
> First post and very much a newbie to Python. Have 2.5 on Linux (GG). I
> think I have set up PYTHONPATH correctly in that I can import a module
> apply_bp and it complains about line 20 in apply_bp which is:
>
> import sys, aipy, numpy, os

Please get used to showing the error message. "it complains about line
x" is not very helpful. Fortunately in this case we can guess that it
is "complaining" about inability to import either aipy or numpy (sys
and os are built-in).

>
> At the interpreter prompt, however, I can import sys, numpy etc. and
> can do dir() and see the entry points so I think my overall
> installation is OK.
>
> Why does line not work ?

More information please.

At the interpreter prompt, do this:
    import sys
    sys.path
    import aipy; aipy.__file__
    import numpy; numpy.__file__
and show us the result.
Change the offending line in your apply_bp module to
    import sys
    print sys.path
    import os, aipy, numpy
and show us ALL of the output.
At the shell prompt, do whatever it takes to display the contents of
PYTHONPATH, and show us the results.

> Also I would have thought that when I pre-
> imported sys et al that they would be in the symbol table so that the
> import line would be a noop.

The concept of "preimporting" a module is novel to me. Importing a
module at the interpreter prompt doesn't persist when you exit the
interpreter and then (implicitly) start up another interpreter task to
run your script. Importing a module in your script puts the module in
the script's namespace, which is quite distinct from the namespace of
the apply_bp (or any other) module. If those two possibilities don't
cover what you mean, please explain.



More information about the Python-list mailing list