On Mon, Jan 11, 2010 at 11:26 AM, Dave Angel <da...@ieee.org> wrote: > Victor Subervi wrote: > >> On Sun, Jan 10, 2010 at 3:09 PM, MRAB <pyt...@mrabarnett.plus.com> wrote: >> >> >> >>> browser = form.getfirst('browser', 'all') >>> >>> >>>> except: >>>> browser = headers() >>>> >>>> try: >>>> >>>> >>> A bare except, and if an exception _does_ occur, they'll be a NameError >>> because 'headers' isn't defined. >>> >>> <slap with large halibut/> >>> >>> >> >> >> Oh, not the large halibut again! (I will be cleaning them up ;) >> >> >> >>> os.chdir('%s/..' % cwd) >>> >>> >>>> sys.path.append(os.getcwd()) >>>> from templateFrame import top, bottom >>>> os.chdir(cwd) >>>> >>>> Why doesn't it work if I move the bottom imports to the top? The form >>>> values get lost, even though I chdir to cwd. >>>> >>>> I try to avoid changing the directory. >>>> >>>> >>> >> It's either that or copying them all over to the other dir, which is even >> worse, since I don't want to maintain identical scripts. >> Thanks, >> beno >> >> >> > You miss the point. Rather than doing chdir to change the current > directory, in order to use getcwd in your sys.path.append, calculate the > appropriate directory yourself, and use it directly, without changing the > current directory. Brute force would be something like (untested): > > sys.path.append(os.path.join(os.getcwd(), "..")) > > You could get trickier by stripping off the last node of the directory > path, but it shouldn't be necessary. > > Incidentally, I'd tend to use os.path.dirname( __main__.file ) rather > than os.getcwd(). That way it'd work even if current directory was changed > by something else. In other words (untested): > > sys.path.append(os.path.join(os.path.dirname(__file__), "..")) > > this will add the parent directory of the current module to the os.path. >
Well put. Thanks! beno
-- http://mail.python.org/mailman/listinfo/python-list