Python 3: AttributeError: 'module' object has no attribute '__path__' using urllib in terminal
Python 3: AttributeError: 'module' object has no attribute '__path__' using urllib in terminal
我的代码在 PyCharm 中运行完美,但我在尝试在终端中打开它时收到错误消息。我的代码有什么问题,或者我哪里出错了?
import urllib.request
with urllib.request.urlopen('http://python.org/') as response:
html = response.read()
print(html)
终端输出:
λ python Desktop\url1.py
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "Desktop\url1.py", line 1, in <module>
import urllib.request
File "C:\Users\Przemek\Desktop\urllib.py", line 1, in <module>
import urllib.request
ImportError: No module named 'urllib.request'; 'urllib' is not a package
您调用了一个文件C:\Users\Przemek\Desktop\urllib.py
,您需要重命名它。您正在从中导入而不是实际的模块。重命名 C:\Users\Przemek\Desktop\urllib.py
并删除任何 C:\Users\Przemek\Desktop\urllib.pyc
.
这不是您 运行 的文件,但您在同一目录中有该文件,因此 python 首先检查当前目录,因此出现错误。
您通过将源文件命名为 urllib.py
来隐藏标准库包 urllib
。重命名!
事实上这在 Pycharm 中完全有效,这是 PyCharm 开发人员的一项惊人的工程壮举!
你也可以在这里使用绝对导入(from __future__ import absolute_import
);但在这种情况下,我认为它不会有帮助,因为您的启动源名称隐藏了您尝试使用的 library/package!
另外,这个:
import urllib.request
with urllib.request.urlopen('http://python.org/') as response:
应该是这样的:
import urllib
with urllib.urlopen('http://python.org/') as response:
我的代码在 PyCharm 中运行完美,但我在尝试在终端中打开它时收到错误消息。我的代码有什么问题,或者我哪里出错了?
import urllib.request
with urllib.request.urlopen('http://python.org/') as response:
html = response.read()
print(html)
终端输出:
λ python Desktop\url1.py
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "Desktop\url1.py", line 1, in <module>
import urllib.request
File "C:\Users\Przemek\Desktop\urllib.py", line 1, in <module>
import urllib.request
ImportError: No module named 'urllib.request'; 'urllib' is not a package
您调用了一个文件C:\Users\Przemek\Desktop\urllib.py
,您需要重命名它。您正在从中导入而不是实际的模块。重命名 C:\Users\Przemek\Desktop\urllib.py
并删除任何 C:\Users\Przemek\Desktop\urllib.pyc
.
这不是您 运行 的文件,但您在同一目录中有该文件,因此 python 首先检查当前目录,因此出现错误。
您通过将源文件命名为 urllib.py
来隐藏标准库包 urllib
。重命名!
事实上这在 Pycharm 中完全有效,这是 PyCharm 开发人员的一项惊人的工程壮举!
你也可以在这里使用绝对导入(from __future__ import absolute_import
);但在这种情况下,我认为它不会有帮助,因为您的启动源名称隐藏了您尝试使用的 library/package!
另外,这个:
import urllib.request
with urllib.request.urlopen('http://python.org/') as response:
应该是这样的:
import urllib
with urllib.urlopen('http://python.org/') as response: