Import and path problem
vincent wehren
v.wehren at home.nl
Sat Jun 14 03:06:35 EDT 2003
"Tung Wai Yip" <tungwaiyip at yahoo.com> schrieb im Newsbeitrag
news:949lev437d4ubu0mp74go0nbb4sut6tfnp at 4ax.com...
> I was using import in these two different styles. They worked the same
> for me.
>
> -----------------------------
>
> import m
> def foo():
> m.bar()
>
> -----------------------------
>
> def foo():
> import m
> m.bar()
>
> -----------------------------
>
> Problem arise when I start the script from an arbitrary directory. It
> is easy enough for me to chdir() back to the script directory
>
> pathname = os.path.dirname(sys.argv[0])
> abspath = os.path.abspath(pathname)
> os.chdir(abspath)
>
> However I find that the first style of import works alright. While the
> second style of import give this error
>
> ImportError: No module named m
>
> It there a semantic difference on where you import? Why does the
> second one fails?
Frankly, I would expect both to fail. So I don't know...
>
> Also it only fails for user modules. System modules are OK.
The system modules are all in sys.path
Try adding :
import sys
sys.path.append('.')
to the script your executing.
Any user modules that live in the same directory as the module you are
executing should now import
o-k, irrespective of from where you are executing (i.e. what the cwd is).
Regards,
Vincent Wehren
>
> Wai yip
>
>
More information about the Python-list
mailing list