Alexander Belopolsky <belopol...@users.sourceforge.net> added the comment:

The issue is not Windows specific, so I am changing the title to reflect that.  
 On OSX, for example, I get

$ PYTHONIOENCODING=xyz ./python.exe
Fatal Python error: Py_Initialize: can't initialize sys standard streams
LookupError: unknown encoding: xyz
Abort trap

I agree that abort() is too drastic for a typo in the environment variable 
setting, but ignoring it silently is not a good option either.  Someone setting 
PYTHONIOENCODING most likely does it for a reason and giving him or her some 
sort of default behavior for mistyped encoding is not helpful.  (Note that this 
is how many C libraries treat TZ environment variable setting and this is often 
very frustrating.)

I think errors in environment variables that can be detected on startup should 
be treated the same way as the command line typos: a descriptive message on C 
stderr and exit(1).

Currently different environment variables are treated differently.  For 
example, mistakes in PYTHONHOME and PYTHONIOENCODING cause fatal error while an 
error in PYTHONSTARTUP is reported but does not terminate python:

$ PYTHONSTARTUP=xyz.py ./python.exe
Python 3.2rc2+ (py3k:88320, Feb  2 2011, 14:07:18) 
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Could not open PYTHONSTARTUP
IOError: [Errno 2] No such file or directory: 'xyz.py'
>>>

----------
nosy: +belopolsky
title: Fatal LookupError: unknown encoding: cp0 on Windows embedded startup. -> 
Fatal error on startup with invalid PYTHONIOENCODING

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue6501>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to