urllib2が動かない・・・

pythonからhttpリクエストするために、http://www.void.in/wiki/Python/HTTPを参考にしてurllib2を使ってみた。

F:\File\IronPython\IronPython-1.1>ipy
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import urllib2
>>> req = urllib2.Request( 'http://192.168.101.130/' )
>>> opener = urllib2.build_opener()
>>> f = opener.open( req )
Traceback (most recent call last):
  File , line 0, in <stdin>##149
  File D:\Program Files\Python24\Lib\urllib2.py, line 358, in open
  File D:\Program Files\Python24\Lib\urllib2.py, line 375, in _open
  File urllib2, line unknown, in _call_chain
  File D:\Program Files\Python24\Lib\urllib2.py, line 337, in _call_chain
  File D:\Program Files\Python24\Lib\urllib2.py, line 1021, in http_open
  File D:\Program Files\Python24\Lib\urllib2.py, line 1010, in do_open
AttributeError: 'module' object has no attribute '_fileobject'
>>>

IronPythonを1.1にしたのがまずったのかなぁ・・・全然原因がわからない。そもそもIronPythonで動くのかすらわからないんだけれども。

追記

python2.4環境だと動作した。IronPythonからはurllib2が利用できないのかも知れない。何か方法ないのだろうか。

追記2

IronPython 1.0.1ではimport urllib2すらできない。

F:\File\IronPython\IronPython-1.0.1>ipy
IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import urllib2
Traceback (most recent call last):
  File , line 0, in <stdin>##11
  File , line 0, in __import__##4
  File D:\Program Files\Python24\Lib\urllib2.py, line 95, in Initialize
  File , line 0, in __import__##4
ImportError: No module named md5

これはmd5モジュールがないのが原因かな。

追記3

IronPython 1.1でurllibを利用した場合

F:\File\IronPython\IronPython-1.1>ipy
IronPython 1.1 (1.1) on .NET 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
>>> import urllib
>>> opener = urllib.FancyURLopener()
>>> f = opener.open( 'http://192.168.101.130/xxx/index.html' )
>>> print f.info()
Date: Thu, 19 Apr 2007 07:13:50 GMT
Server: Apache/1.3.33 (Win32)
Last-Modified: Fri, 02 Mar 2007 03:46:56 GMT
ETag: "0-4585-45e79e30"
Accept-Ranges: bytes
Content-Length: 17797
Connection: close
Content-Type: text/html

>>> print f.read()
Traceback (most recent call last):
  File System, line unknown, in Read
  File System, line unknown, in Receive
  File System, line unknown, in Receive
  File , line 0, in <stdin>##161
  File , line 0, in Read##162
  File System, line unknown, in Read
IOError: 転送接続からデータを読み取れません: 破棄されたオブジェクトにアクセスで
きません。
オブジェクト名 'System.Net.Sockets.Socket' です。。

f.read()が動作しないのが痛い。たぶんpythonのread()が.NetのSocketだとうまく動作しないからだろう。
結局System.Net.WebRequestとかで同じことはできたんだけど・・・なんだかなぁ。

追記4

FePyを使って出来た(http://d.hatena.ne.jp/xanthus/20070420)。純正IronPythonじゃ無理っぽい。