I build several versions of Python from Mercurial sources on a regular basis. I am starting on a new collection of programs for some database work and figured I should start using Python 3. I wanted to look something up quickly about the sqlite3 module, so I tried "pydoc sqlite3". That worked fine, but I figured it was probably using Python 2.x. In fact, it was using Python 2.6. So, I found all my pydoc-ish commands:
% like pydoc /Users/skip/local/bin/pydoc /Users/skip/local/bin/pydoc3 /Users/skip/local/bin/pydoc3.2 /Users/skip/local/bin/pydoc3.3 /Users/skip/local/bin/pydoc3.4 /Users/skip/local/bin/pydoc3.5 /usr/bin/pydoc /usr/bin/pydoc2.6 /usr/bin/pydoc2.7 /usr/local/bin/pydoc3 /usr/local/bin/pydoc3.4 and tried pydoc3.5. That didn't work so well: % pydoc3.5 sqlite3 Traceback (most recent call last): File "/Users/skip/local/bin/pydoc3.5", line 5, in <module> pydoc.cli() File "/Users/skip/local/lib/python3.5/pydoc.py", line 2591, in cli help.help(arg) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1874, in help elif request: doc(request, 'Help on %s:', output=self._output) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1612, in doc pager(render_doc(thing, title, forceload)) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1412, in pager pager(text) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1434, in <lambda> return lambda text: pipepager(text, 'less') File "/Users/skip/local/lib/python3.5/pydoc.py", line 1455, in pipepager pipe.write(text) UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 600: ordinal not in range(128) I don't have PAGER or LANG set, but if I do, I get basically the same error: % LANG=en_US.utf8 PAGER=less pydoc3.5 sqlite3 Traceback (most recent call last): File "/Users/skip/local/bin/pydoc3.5", line 5, in <module> pydoc.cli() File "/Users/skip/local/lib/python3.5/pydoc.py", line 2591, in cli help.help(arg) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1874, in help elif request: doc(request, 'Help on %s:', output=self._output) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1612, in doc pager(render_doc(thing, title, forceload)) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1412, in pager pager(text) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1428, in <lambda> return lambda text: pipepager(text, os.environ['PAGER']) File "/Users/skip/local/lib/python3.5/pydoc.py", line 1455, in pipepager pipe.write(text) UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 600: ordinal not in range(128) I get the same thing from a python3.5 prompt using "import sqlite3 ; help(sqlite3)". Not having any idea what was in position 600, I tried getting help for each element in dir(sqlite3). That failed as well, though it appeared for some strange reason to crap out on help(sqlite3.dbapi2.__name__). Any idea how I can track down this character so I can report a proper bug? Thx, Skip -- https://mail.python.org/mailman/listinfo/python-list