[Python-Dev] confusing exec error message in 3.0
Isaac Morland
ijmorlan at cs.uwaterloo.ca
Fri Aug 29 03:50:14 CEST 2008
On Fri, 29 Aug 2008, Greg Ewing wrote:
> Steven D'Aprano wrote:
>
>> I don't think M.__file__ should lie and say it was loaded from a file that
>> it wasn't loaded from. It's useful to be able to look at a module and see
>> what file it was actually loaded from.
>
> On the other hand, it could be useful to be able to find
> the source file for a module, regardless of whether it
> was loaded from a .py, .pyc or .pyo.
>
> Maybe there should be a __source__ attribute for that?
>
> Or is os.path.splitext(M.__file__)[0] + ".py" considered
> good enough for that?
I think .__source__ is a much better idea. It's more explicit to start
with, and on top of that it can simply be None when there is no source
file available, which is much more explicit than "file not found means no
source file available". Also, if a feature is ever added to allow telling
Python to put the compiled files in a separate tree (like javac -d
directory in the Java universe) then it will be even more clear that
computing the source location from __file__ is not the way to go.
PS, in case it's not clear, I want that feature, in order to keep .pyc
files out of my SVN checkouts. I hate having automatically generated
files in my workspace.
Isaac Morland CSCF Web Guru
DC 2554C, x36650 WWW Software Specialist
More information about the Python-Dev
mailing list