2

これを何百万回も実行しましたが、urllib2 を使用しようとすると、何らかの理由で奇妙なエラーが発生します。最近、Ubuntu 11.10 から 12.04 にアップグレードしました。

コード:

from urllib2 import urlopen
urlopen('http://www.google.com').read()

結果:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    urlopen('http://www.google.com').read()
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 400, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 418, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1207, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1146, in do_open
    h = http_class(host, timeout=req.timeout) # will parse host:port
  File "/home/nate/httplib.py", line 362, in __init__
ImportError: No module named appengine.api

urllib を使用すると、同様のエラーが発生します。これを引き起こす原因と、この問題を解決する方法について何か考えはありますか?

4

3 に答える 3

3

標準モジュール httplib をオーバーライドしている httplib.py があるようです。また、存在しない Google App Engine 関連のライブラリをインポートしようとしています。httplib.py の名前を別の名前に変更する必要があります。

于 2012-05-13T18:59:07.160 に答える
1

ファイル「/home/nate/httplib.py」の 362 行目、

sys.path呼び出されたファイルにhttplib.pyappengine.api をインポートしようとしているファイルがあります。

/home/nate/httplib.py同じ名前の標準ライブラリ モジュールを隠しているため、別の名前に変更します。

于 2012-05-13T18:57:42.990 に答える
0

requests ライブラリをご覧になることを強くお勧めします。HTTP の操作が簡単になります。

「Python の標準の urllib2 モジュールは、必要な HTTP 機能のほとんどを提供しますが、API は完全に壊れています。別の時間、別の Web 用に構築されました。最も単純な機能を実行するには、膨大な量の作業 (メソッドのオーバーライドを含む) が必要です。タスクの。」

于 2012-05-13T19:01:54.423 に答える