Academic Question

Victor Subervi victorsubervi at gmail.com
Mon Jan 11 16:31:59 CET 2010


On Mon, Jan 11, 2010 at 11:26 AM, Dave Angel <davea at ieee.org> wrote:

> Victor Subervi wrote:
>
>> On Sun, Jan 10, 2010 at 3:09 PM, MRAB <python at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20100111/3bb1430c/attachment.html>


More information about the Python-list mailing list