SSC*_*SSC 4 python python-import python-3.x
我正在按照python在线文档(21.12.3)中的示例进行练习.当我尝试使用Run Module(F5)运行我的脚本时,我总是遇到导入错误.但是如果我直接在IDLE命令行中输入它们,python就不会抱怨.我不确定我做错了什么.
我正在使用的python版本是win32上的Python 3.4.1(v3.4.1:c0e311e010fc,2014年5月18日,10:38:22)[MSC v.1600 32位(英特尔)]
脚本是
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()
Run Code Online (Sandbox Code Playgroud)
错误消息是
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
Run Code Online (Sandbox Code Playgroud)
zaa*_*deh 24
您可能已经创建了一个python脚本并将其命名为http.py本地目录.这与Python的内置模块具有相同的名称冲突,并导致此错误.快速解决方案是将此文件重命名为不太通用的文件,以避免与Python模块冲突.
但是如果你坚持,你可以通过使用绝对导入 s 完全限定本地python模块名来清除名称歧义:
from . import http
Run Code Online (Sandbox Code Playgroud)
要么
from .http import something
Run Code Online (Sandbox Code Playgroud)
在Python 2.7上,必须在导入模块的顶部启用它:
from __future__ import absolute_import
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9904 次 |
| 最近记录: |