New submission from STINNER Victor <[email protected]>:
On POSIX (but not on Mac OS X), Python3 calls get_codeset() to get the file
system encoding. If this function fails, sys.getfilesystemencoding() returns
None. PyUnicode_DecodeFSDefaultAndSize() fallbacks to utf-8 whereas subprocess
fail:
...
File "/home/SHARE/SVN/py3k/Lib/subprocess.py", line 670, in __init__
restore_signals, start_new_session)
File "/home/SHARE/SVN/py3k/Lib/subprocess.py", line 1101, in _execute_child
executable_list = (fs_encode(executable),)
File "/home/SHARE/SVN/py3k/Lib/subprocess.py", line 1088, in fs_encode
return s.encode(fs_encoding, 'surrogateescape')
TypeError: encode() argument 1 must be string, not None
We have two choices: raise a fatal error if get_codeset() failed, or fallback
to utf-8.
On Windows and Mac OS X, get_codeset() shouldn't be called because the result
is just dropped. We should call _PyCodec_Lookup(Py_FileSystemDefaultEncoding)
instead to ensure that the file system encoding can be loaded.
----------
components: Interpreter Core, Unicode
messages: 104924
nosy: haypo
priority: normal
severity: normal
status: open
title: Python3/POSIX: errors if file system encoding is None
versions: Python 3.2
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue8610>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com