私が試してみました
import urllib.request
または
import urllib
Urllibのパスは/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/__init__.py
私はurlopenがどこにあるのか、またはpythonモジュールが間違ったファイルを指しているのですか?
これを使って:
import urllib.request
その理由は:
このようなパッケージでは、必要な部分を明示的にインポートする必要がある場合があります。そうすれば、1つの小さなパーツが必要だったからといって、urllibモジュールがすべてをロードする必要がなくなります。
this による
python 3.6.xでこれはうまくいきました。このように、コードをまったく変更する必要はありませんでした:
import urllib.request as urllib
import urllib.request as urllib
次に、コードでurlopen関数を呼び出します
例:
test = urllib.urlopen("----")
上記の方法で問題が解決しない場合は、pythonモジュールの名前を変更してください。
私の特定の場合、問題は実行中のファイルがhttp.py
と呼ばれることでした。名前をtest-http.py
に変更したら、urllib.requestをインポートするとエラーAttributeError: module 'urllib' has no attribute 'request'
が解決されました
内部パッケージがhttp
と呼ばれるモジュールをフェッチしようとしているので、例外トレースのさらに上にあることに気付きました。