编程语言
首页 > 编程语言> > 使用Python 3.4.1导入http.client encouter导入错误

使用Python 3.4.1导入http.client encouter导入错误

作者:互联网

我遵循python在线文档(21.12.3)中的示例进行练习.当我尝试使用“运行模块”(F5)运行脚本时,总是出现导入错误.但是,如果我直接在IDLE命令行中输入它们,python不会抱怨.我不确定我在做什么错.

我正在使用的python版本是
在Win32上的Python 3.4.1(v3.4.1:c0e311e010fc,2014年5月18日,10:38:22)[MSC v.1600 32位(Intel)]

该脚本是

import http.client

conn = http.client.HTTPConnection("192.168.1.2", 8080)
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print(r1.status, r1.reason)
conn.close()

错误消息是

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 "D:\User\Downloads\http.py", line 1, in <module>
    import http.client
  File "D:\User\Downloads\http.py", line 1, in <module>
    import http.client
ImportError: No module named 'http.client'; 'http' is not a package

解决方法:

您可能已经创建了一个python脚本,并在本地目录中将其命名为http.py.这与具有相同名称的Python内置模块冲突,并导致此错误.快速解决方案是将该文件重命名为不太通用的名称,以避免与Python模块冲突.

但是,如果您坚持要使用绝对导入完全限定本地python模块名称,则可以消除名称歧义:

from . import http

要么

from .http import something

在Python 2.7上,有必要在导入模块的顶部启用此功能:

from __future__ import absolute_import

标签:python,python-3-x,python-import
来源: https://codeday.me/bug/20191011/1890092.html