web-dev-qa-db-ja.com

Python3.6でのurllibのインストール

関数 '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」はパッケージではありません

ここにエラーのスクリーンショットがあります

11
Mohamed Mahdi

urllibは標準ライブラリです。インストールする必要はありません。単にimport urllib

20
Xero Smith

修正されたコードは

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}
3
Kardi Teknomo

urllibは標準のpythonライブラリ(ビルトイン)なので、インストールする必要はありません。 requestを使用する必要がある場合にインポートするだけです。

import urllib.request

うまくいかない場合は、pythonを間違った方法でコンパイルした可能性がありますので、親切にしてください。

2
Ahmad Nourallah

これは、urllib.pyという名前のローカルモジュールが、使用しようとしているインストール済みの要求モジュールをシャドウするために発生します。現在のディレクトリはsys.pathに事前に追加されるため、ローカル名はインストールされている名前よりも優先されます。

これが発生した場合の追加のデバッグのヒントは、トレースバックを注意深く見て、問題のスクリプトの名前がインポートしようとしているモジュールと一致していることを認識することです。

ファイルの名前をurl.pyなどの他の名前に変更します。その後、正常に動作しています。それが役に立てば幸い!

0
Akshat Divya