On Wed, Jan 20, 2010 at 7:19 AM, Victor Subervi <span dir="ltr"><<a href="mailto:victorsubervi@gmail.com">victorsubervi@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi;<br>I think I finally have an interesting problem for y'all. I need to import a script from a lower dir, forcing me to change dirs:<br></blockquote><div><br></div><div>Don't do that. If you must, then the correct way to do it is to adjust your sys.path and not change directory. "sys.path.append('..')" or whatever.</div>

<div><br></div><div>But I really would just re-organize your code so you don't need such things. Have a single top-level directory that's on your path, put a blank __init__.py in all your directories, and use absolute imports everywhere.</div>

<div><br></div><div>from myapp.templateFrame import top, bottom</div><div>from myapp.some_directory.some_file import this, that</div><div><br></div><div>etc.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Now, apparently because of python's problem with globals, when I call "id" as follows:<br><br></blockquote><div><br></div><div>Python does not have problems with globals. You are repeatedly re-using the same variable names, causing confusion and errors; when you say 'id' in that line of code, Python doesn't think you are talking about the "id" that is global. It thinks you are talking about the "id" that is local-- that you define one line beneath.</div>

<div><br></div><div>Local has precedence over global. Don't shadow global variables (and 'id' is a bad name, as it shadows a builtin variable)</div><div><br></div></div><br clear="all"><div name="mailplane_signature">

--S</div>