web-dev-qa-db-ja.com

Python 3.5.1 urllibには属性リクエストがありません

私が試してみました

import urllib.request

または

import urllib

Urllibのパスは/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/__init__.py

私はurlopenがどこにあるのか、またはpythonモジュールが間違ったファイルを指しているのですか?

15
user1999806

これを使って:

import urllib.request

その理由は:

このようなパッケージでは、必要な部分を明示的にインポートする必要がある場合があります。そうすれば、1つの小さなパーツが必要だったからといって、urllibモジュールがすべてをロードする必要がなくなります。

this による

32
Swordsman

python 3.6.xでこれはうまくいきました。このように、コードをまったく変更する必要はありませんでした:

import urllib.request as urllib
4
MPękalski
import urllib.request as urllib

次に、コードでurlopen関数を呼び出します

例:

test = urllib.urlopen("----")
2
Hassan Saeed

上記の方法で問題が解決しない場合は、pythonモジュールの名前を変更してください。

私の特定の場合、問題は実行中のファイルがhttp.pyと呼ばれることでした。名前をtest-http.pyに変更したら、urllib.requestをインポートするとエラーAttributeError: module 'urllib' has no attribute 'request'が解決されました

内部パッケージがhttpと呼ばれるモジュールをフェッチしようとしているので、例外トレースのさらに上にあることに気付きました。

1
JohnnyFun