Issue1138
Created on 2008-09-23.15:05:27 by kam, last changed 2008-11-22.23:36:06 by pjenvey.
msg3614 (view) |
Author: Kevin A. Mitchell (kam) |
Date: 2008-09-23.15:05:26 |
|
It seems that the __file__ module attribute reflects the original
source, not the location the module was loaded from as would be expected.
A test case can be simply made from two files: imported.py and testimport.py
imported.py:
import os
base = os.path.dirname(__file__)
top = os.path.abspath(base)
up = os.path.abspath(os.path.join(base, '..'))
print __file__, base, top, up
testimport.py:
from imported import *
Running gives the same results in Jython and CPython:
$ jython testimport.py
/Users/kam/src/importtest/imported.py /Users/kam/src/importtest
/Users/kam/src/importtest /Users/kam/src
$ python testimport.py
/Users/kam/src/importtest/imported.py /Users/kam/src/importtest
/Users/kam/src/importtest /Users/kam/src
...but if the directory tree is copied or renamed:
$ cd ..
$ rsync -avP importtest/ it/
$ cd it
$ python testimport.py
/Users/kam/src/it/imported.pyc /Users/kam/src/it /Users/kam/src/it
/Users/kam/src
$ jython testimport.py
/Users/kam/src/importtest/imported.py /Users/kam/src/importtest
/Users/kam/src/importtest /Users/kam/src
But if the class file is removed:
$ rm imported\$py.class
$ jython testimport.py
/Users/kam/src/it /Users/kam/src/it /Users/kam/src
...the correct value is now calculated.
http://docs.python.org/ref/types.html says "__file__ is the pathname of
the file from which the module was loaded, if it was loaded from a
file". Apparently, Jython is storing the name of the original Python
file and using that. It would be expected that __file__ would contain
the name of the $py.class file it was loaded from.
|
msg3760 (view) |
Author: Philip Jenvey (pjenvey) |
Date: 2008-11-08.00:39:43 |
|
I tried fixing this almost a year ago but it ended up breaking a module or
two. I'll try to revisit it before the 2.5 release
I have a couple tests that ensure this in (IIRC) test_import_jy and
test_chdir -- they're currently special cased for Jython's bad behavior
|
msg3808 (view) |
Author: Philip Jenvey (pjenvey) |
Date: 2008-11-22.23:36:06 |
|
fixed in r5601, thanks
|
|
Date |
User |
Action |
Args |
2008-11-22 23:36:06 | pjenvey | set | status: open -> closed resolution: fixed messages:
+ msg3808 |
2008-11-08 00:39:43 | pjenvey | set | assignee: pjenvey messages:
+ msg3760 nosy:
+ pjenvey |
2008-09-23 15:05:27 | kam | create | |
|