ohad frand wrote
Hi
Thanks for the answer.
I probably didnt write the problem accurately but it is not as you described.
(i already read before the section that you pointed and it didnt help me)
the problem is that i dont want to import a file from different directory but only from the same directory.
\\1\tmp2.py imports \\1\tmp1.py
\\2\tmp2.py imports \\2\tmp2.py
but when i execute the following script in the interpreter i get that the second tmp2.py file imports not the file from the same directory but the file that was already imported by the first executed tmp2.py file.
I think that using absolute names DOES solve the problem.

import two.tmp2  # This will import tmp2.py in "two" folder for sure!

>>> execfile("tmp2.py") <- here the executaion is OK
>>> os.chdir("c:\\2")
>>> execfile("tmp2.py") <- here the execution is not ok because tmp2.py file imports the tmp1.py file from c:\\1 which is not OK
Hmm looks like your tmp2.py file is not a module but a whole program. No wonder I could not understand you - I thought that "tmp2.py" is a module, not a program.

The answer in this case: if tmp2.py is a program then you should either manipulate sys.path or chdir to the containing dir, as I told in my former post. ( os.split(os.abspath(__file...))) -> then chdir or sys.path.insert(0,mydir) )

in between those two execfile commands i tried to do a lot of things but every time python imported the incorrect file for the second execution. (i am not building a package and those names are just examples for the problem, i am not really using 1 and 2 names as dirs)
Why do you need execfile?

 Laszlo

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to