On 2010-02-02, Roy Smith <r...@panix.com> wrote: > In article <hk82uv$8k...@reader1.panix.com>, kj <no.em...@please.post> > wrote: > >> Through a *lot* of trial an error I finally discovered that the >> root cause of the problem was the fact that, in the same directory >> as buggy.py, there is *another* innocuous little script, totally >> unrelated, whose name happens to be numbers.py. >> [...] >> It turns out that buggy.py imports psycopg2, as you can see, and >> apparently psycopg2 (or something imported by psycopg2) tries to >> import some standard Python module called numbers; instead it ends >> up importing the innocent myscript/numbers.py, resulting in *absolute >> mayhem*. > > I feel your pain, but this is not a Python problem, per-se.
I think it is. There should be different syntax to import from "standard" places and from "current directory". Similar to the difference between "foo.h" and <foo.h> in cpp. > The general > pattern is: > > 1) You have something which refers to a resource by name. > > 2) There is a sequence of places which are searched for this > name. Searching the current directory by default is the problem. Nobody in their right mind has "." in the shell PATH and IMO it shouldn't be in Python's import path either. Even those wreckless souls who do put "." in their path put it at the end so they don't accidentally override system commands. -- Grant Edwards grante Yow! So this is what it at feels like to be potato visi.com salad -- http://mail.python.org/mailman/listinfo/python-list