Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000806Vine Linux1 バグ公開2009-10-29 10:372010-01-20 13:00
anonymous 
 
不明 
完了却下 
5.0 
 
x86
なし
0000806: pythonのhelp()で画面が乱れます。
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ではスクリプトの表示に問題なしでした。
設定されていません。
課題の履歴
2009-10-29 10:37anonymous新規課題
2009-10-29 10:54anonymousコメント追加: 0003501
2009-10-29 11:06anonymousコメント追加: 0003502
2009-11-11 11:09anonymousコメント追加: 0003503
2010-01-02 00:50anonymousコメント追加: 0003504
2010-01-20 13:00kazutaka状態新規 => 完了
2010-01-20 13:00kazutaka解決状況不明 => 却下
2010-01-20 13:00kazutakaコメント追加: 0003505

コメント
(0003501)
anonymous   
2009-10-29 10:54   
> *これが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ではスクリプトの表示に問題なしでした。
すみません。vine4.2の報告は間違いでした。
utf-8無しの漢字無しで
help(my_test)
help(my_test.factorial)
双方正規の表示です。
漢字を使うと
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "my_test3.py", line 6
    "factorial(n) -> n あ"
                            ^
SyntaxError: invalid syntax
となるようです。
(0003502)
anonymous   
2009-10-29 11:06   
> 漢字を使うと
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File "my_test3.py", line 6
> "factorial(n) -> n あ"
> ^
> SyntaxError: invalid syntax
> となるようです。
すみません。
スクリプトの先頭encodeを
euc-jpだと全く問題なく漢字も使えました。
vine4.2だと全く問題無いです。
vine5の方宜しくお願いします。
(0003503)
anonymous   
2009-11-11 11:09   
試しに
Puttyではなくvine5.0のデスクトップからコマンドラインで、
及びubuntu9.10のデスクトップからコマンドラインで、
(ubuntu9.10はpython2.6で)同じ操作をやってみたところ、
コード中に漢字があると
help(my_test)だとコマンドラインがそれぞれフリーズ
help(my_test.factorial)だと~dとqでコマンドラインに復帰
全く同じ結果になりました。
コード中に漢字が無いと正常出力です。
これって、vineではなく本家pythonそのものの問題なのでしょうか。
(0003504)
anonymous   
2010-01-02 00:50   
pythonのドキュメントで知りました。
utf-8正式対応って3.0からだそうですね。
騒いで申し訳ありません。
(0003505)
kazutaka   
2010-01-20 13:00   
> pythonのドキュメントで知りました。
> utf-8正式対応って3.0からだそうですね。

報告ありがとうございます。

特に不具合ではない(仕様通り?)のようですので、とりあえず
却下として閉じておきます。

ハラダ