On 7/20/2011 4:41 PM, Mark Hammond wrote:
On
21/07/2011 7:43 AM, Glenn Linderman wrote:
...
I still get the same behavior. Is there any debugging output
produced
by py.exe that would tell what py.ini it looks in, and what the
content
is? What diagnostic steps might I take to produce additional
information that would help you (or me, along the way) analyze
the
issue? I do not presently have a C compiler installed on this
machine,
however, unless it came along for a ride with something else.
It doesn't do exactly what you ask, but setting an environment
variable PYLAUNCH_DEBUG to any value will cause some debug output
to be generated to stdout.
Mark
It produces:
d:\>py d:\path\to\foo.py
launcher build: 64bit
launcher executable: Console
File 'C:\Users\Glenn\AppData\Roaming\py.ini' non-existent
maybe_handle_shebang: read 256 bytes
maybe_handle_shebang: BOM not found, using UTF-8
locate_pythons_for_key: unable to open PythonCore key
locate_pythons_for_key: unable to open PythonCore key
run_child: about to run 'C:\Python26\python.exe d:\path\to\foo.py'
File "d:\path\to\foo.py", line 469
child process exit code: 1
So this tells me that it didn't find a local py.ini (no surprise, I
don't have one) but doesn't tell me that it did find or read
c:\Windows\system32\py.ini much less whether I have the syntax
correct for my [defaults] section. It doesn't tell me that it
didn't find a #! line (but there isn't one).
Perhaps the problem is that there isn't one? If it finds no virtual
command, maybe it doesn't obey the [defaults] python=3 directive?
The PEP says it should act like '!#python' (I think the PEP meant
'#!python', though????). There is no " " after '!#python' in the
PEP, so that disqualifies it from being a customized command, there
is no '/usr/bin/' nor '/usr/bin/env ' in front of the 'python' so
that means it is not a virtual command; and it is not a
fully-qualified name, so it doesn't mean that case either.... looks
like the PEP needs a bit of clarification here.
I do have a python on my path, but it is 3.1.2, not 3.2.1 or 2.6.4,
and it runs 2.6.4 as the output shows. And I would expect it to run
3.2.1 with the [defaults] python=3 directive, since that is newer
than 3.1.2, which is on my PATH.
So, still a mystery.