Strange Python problem on Linux.
Thomas A. Bryan
tbryan at python.net
Wed Mar 1 04:20:41 CET 2000
Paul Jackson wrote:
> Along the lines of the previous suggestion that the "#! ..." line
> might have odd chars, in addition to trying 'cat -v', also try:
> head -1 mdef.py > silly.py
> echo 'print "What's wrong?"' >> silly.py
> chmod u+x silly.py
Yep. I tried them both for thoroughness. There was a ^M (hex(13))
at the end of the #! line. Linux was picking it up as part of the
command to run. I would have expected it to show up as extra whitespace
or control characters when I traced the program, but it didn't. I
should have thought of cat -v (or Emacs hexl-mode) much earlier.
$ strace -o out.trace mdef.py
strace: exec: No such file or directory
$ cat out.trace
execve("./mdef.py", ["mdef.py"], [/* 28 vars */]) = 0
One reason I never looked for the ^M was that I use Xemacs at work.
It shows the ^M. Emacs seems to do the translation on the fly for
me, so I didn't realize that the file had MS-corrupted line endings.
> That or just edit 'mdef.py', deleting the first line and rekeying
> it from scratch, if you are more interested in cures than in
> a diagnosis.
No. I hate it when I fix something but don't know what was
originally wrong. If I know a problem's symptoms, cause, and
solution, then I'll be more effective the next time I encounter it.
> I won't rest till it's the best ... Software Production Engineer
More information about the Python-list