Kay Schluehr wrote:
On 24 Jan., 09:21, "Gabriel Genellina" <gagsl-...@yahoo.com.ar> wrote:
If you run A.py as a script, it does not "know" it lives inside a package.
You must *import* A for it to become aware of the package.
Also, the directory containing the script comes earlier than PYTHONPATH
entries in sys.path -- so watch for that case too.
Thanks, yes. I always make the same error thinking that a directory
with the ritual __init__ file is actually a package ( as some kind of
platonic entity ), something that is more obvious to me than it is to
the runtime. The relative import semantics introduced with Python 2.5
has made the error just visible that was hidden to me for about a
decade. Shit.
Temper the language a bit.  You lose your effectiveness by some people
reading the color of your words, rather than their meaning in code.

By the way, if you run the script as:

    $ python -m package.A

You may get what you want

demo (language fixed up a bit, moe info printed):

in .../lib/site-packages:
    possible.py
    -------------
    print('import from top possible: %s' % __file__)

in .../lib/site-packages/package:
    possible.py
    -------------
    print('import from package.possible: %s' % __file__)

    __init__.py
    -------------
    print('package initialized: %s' % __file__)


    A.py
    ------
    print('A started: %s' % __file__)
    import possible
    print('A running: %s' % __file__)

--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to