VineSeed ML アーカイブ



[VineSeed:19053] [VineLinux:0806] python の help() で画面が乱れます。

  • From: bts-vinelinux@xxxxxxxxxxxxx
  • Subject: [VineSeed:19053] [VineLinux:0806] python の help() で画面が乱れます。
  • Date: Thu, 29 Oct 2009 10:38:29 +0900
XXXXXXXX@XXXXXXXX wrote: 

pythonのhelp()でスクリプト中にutf-8漢字があるときの現象です。

ただいまpythonスクリプトの学習中です。
で、その教材として
http://www.okisoft.co.jp/esc/python/iron-python-intro.html
を参考にしました。

環境はwindows2000sp4+putty->サーバー扱いのvine5
コマンドラインのみの環境です。

記事中にあるmy_test.pyをカレントに作り
import my_test
ここまでは問題なし。
help(my_test.factorial)
と
help(my_test)
を実行でputtyが変になります。
help(my_test.factorial)
は
    else: doc(request, 'Help on %s:')
  File "/usr/lib/python2.5/pydoc.py", line 1479, in doc
    pager(title % desc + '\n\n' + text.document(object, name))
  File "/usr/lib/python2.5/pydoc.py", line 1297, in pager
    pager(text)
  File "/usr/lib/python2.5/pydoc.py", line 1317, in <lambda>
    return lambda text: pipepager(text, 'less')
  File "/usr/lib/python2.5/pydoc.py", line 1338, in pipepager
    pipe.write(text)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 
100-102: ordinal not in range(128)
でハングアップ
puttyのセッションからやり直し

help(my_test)
はlessと似た反応で終了させると
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/site.py", line 346, in __call__
    return pydoc.help(*args, **kwds)
  File "/usr/lib/python2.5/pydoc.py", line 1643, in __call__
    self.help(request)
  File "/usr/lib/python2.5/pydoc.py", line 1687, in help
    else: doc(request, 'Help on %s:')
  File "/usr/lib/python2.5/pydoc.py", line 1479, in doc
    pager(title % desc + '\n\n' + text.document(object, name))
  File "/usr/lib/python2.5/pydoc.py", line 1297, in pager
    pager(text)
  File "/usr/lib/python2.5/pydoc.py", line 1317, in <lambda>
    return lambda text: pipepager(text, 'less')
  File "/usr/lib/python2.5/pydoc.py", line 1338, in pipepager
    pipe.write(text)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 
267-269: ordinal not in range(128)
となってます。
このあと、^Dでpython終了でコマンドラインのエコーバックが無くなります。

puttyのセッションからやり直し

どちらもスクリプト中から漢字をアルファベットに変更すると正規の表示に
なってます。

-----------------------------------------------------------------------------------------------
*これがvine4.2の接続では、utf-8無しでアルファベットでも
importの時点で
__main__:1: DeprecationWarning: Non-ASCII character '\xa4' in file 
my_test.py on line 6, but no encoding declared; see 
http://www.python.org/peps/pep-0263.html for details
となります。
lessではスクリプトの表示に問題なしでした。


== このレポートの詳細は以下の通りです ==

レポート ID  : 806
レポート URL : http://bts.vinelinux.org/guest.cgi?project=VineLinux&action=view_report&id=806

分類           : バグ
Vine ver.      : 5.0
関連パッケージ : なし
arch           : x86
状態           : 新規
優先度         : 中
重大度         : 普通
担当者         : 未定

# あなたが、このようなメッセージに無関係である場合には、
# 管理者 <Vine@xxxxxxxxxxxxx> までご連絡ください。

--
Bug Tracking System 影舞 0.8.8.
http://www.daifukuya.com/kagemai/