関数 'request'を使用するためにurllibをインポートしたいと思います。しかし、そうしようとするとエラーが発生しました。 pip install urllibを試しましたが、まだ同じエラーがありました。 Python 3.6を使用しています。本当に助かります。
私はこのコードを使用してurllib.requestをインポートします:
import urllib.request, urllib.parse, urllib.error
fhand = urllib.request.urlopen('data.pr4e.org/romeo.txt')
counts = dict()
for line in fhand:
words = line.decode().split()
for Word in words:
counts[Word] = counts.get(Word, 0) + 1
print(counts)
しかし、それは私にこのエラーを与えます:ModuleNotFoundError:No module named 'urllib.parse'; 「urllib」はパッケージではありません
urllib
は標準ライブラリです。インストールする必要はありません。単にimport urllib
修正されたコードは
import urllib.request
fhand = urllib.request.urlopen('http://data.pr4e.org/romeo.txt')
counts = dict()
for line in fhand:
words = line.decode().split()
for Word in words:
counts[Word] = counts.get(Word, 0) + 1
print(counts)
上記のコードを実行すると
{'Who': 1, 'is': 1, 'already': 1, 'sick': 1, 'and': 1, 'pale': 1, 'with': 1, 'grief': 1}
urllib
は標準のpythonライブラリ(ビルトイン)なので、インストールする必要はありません。 request
を使用する必要がある場合にインポートするだけです。
import urllib.request
うまくいかない場合は、pythonを間違った方法でコンパイルした可能性がありますので、親切にしてください。
これは、urllib.py
という名前のローカルモジュールが、使用しようとしているインストール済みの要求モジュールをシャドウするために発生します。現在のディレクトリはsys.pathに事前に追加されるため、ローカル名はインストールされている名前よりも優先されます。
これが発生した場合の追加のデバッグのヒントは、トレースバックを注意深く見て、問題のスクリプトの名前がインポートしようとしているモジュールと一致していることを認識することです。
ファイルの名前をurl.py
などの他の名前に変更します。その後、正常に動作しています。それが役に立てば幸い!