パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Python 3.1リリース」記事へのコメント

  • Debian lenny(i386)のPCの上でソースからビルドしてみました。

    ……./configure→make allはつつがなく済んだのですが、しかる後にmake testしたらセルフテストでエラーがぼろぼろ出ましたorz。

    いや、dbmとかsqliteとかtkとかgzipとかbz2のモジュールのテストがエラーになるのは分かるんですよ。
    # 拡張モジュールの構築に必要なパッケージを入れてないから当たり前。

    test_boolみたいな基本的なテストでエラーが出てしまって途方に暮れてます。

    • 自己レス。

      テストのログを見たところ、test_boolでこけるのは"\xa0".isspace()がFalseを返すのがお気に召さないからだそうです。

      でも他の処理系ではどうなのよ?と疑問に思って、Debian lenny(i386)の上で動くPython2,5とWindowsの上で動くPython 2.6.1で上記の式を評価させてみたら……両方ともFalse。何だそりゃ?

      • いや、それはちょっと違うんじゃないかと(^^;)
        Python 3.xのstrはUNICODEですから、 "\xa0".isspace() の結果は2.xとは異なるのが当然です。
        (Ubuntu+Python 2.6でも、 u"\xa0".isspace() はTrueが返ってきました)

        u+00a0 : NO-BREAK SPACE

        なので、 "\xa0".isspace() の結果はTrueでなければいけません。
        で、このstr.isspaceの実体は、Include/unicodeobject.hで定義されている通りCライブラリのiswspaceですので、こちらが正常に機能していないのではないかと思われます。

        • ・test_bool
          原因は「configureで--with-wctype-functionsを指定した」だった模様で、外して再度ビルドしたらtest_boolをパスするようになりました。Python3でUnicode文字列がデフォルトになったという重要事項を、頭に血が上りかけて一時失念していました。

          ・test_unicode
          test_boolと同じ原因で失敗していたようで、これもconfigureしなおして再ビルドしたらパスするようになりました。

          ・test_urllib
          「プロキシを経由せずに直接接続するホスト」が「localhost」だけなのがイクナイ(127.0.0.0/8が無い)ので失敗していたようですが、no_proxy環境変数を設定したらパスしました。
          # いいのかそれで?

          ・test_urllib2_localnet
          このテストはhttp_proxy環境変数がセットされていると失敗するみたいです。
          http_proxy環境変数を削除して実行したらパスしました。

          とりあえずこれで致命的なテスト失敗は全部つぶせたようです。

          親コメント

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

処理中...