python导入dns模块异常错误——ModuleNotFoundError: No module named 'dns'

首先,先自嘲一下,蠢材博主。
今天用python链接MySQL,想搞点事情,但是导入模块这老错,让人很难受。具体错误如下:

import mysql.connector
Traceback (most recent call last):
	  File "", line 1, in <module>
	  File "C:\Users\14383\AppData\Local\Programs\Python\Python38\lib\site-packages\mysql\connector\__init__.py", line 41, in <module>
	    import dns.resolver
ModuleNotFoundError: No module named 'dns'

提示没有装载模块dns,那么用pip install装载不就行了。
打开dos窗口,输入pip install dnsPython,结果提示已经安装了dnspython模块。那么装载了,不如打开初始化文件瞧瞧,到底是哪错了。在电脑上,打开上述出错的初始化文件,上述提示地址为:C:\Users\14383\AppData\Local\Programs\Python\Python38\lib\site-packages\mysql\connector_init_.py。
跳到第41行,初始化文件内容如下:
python导入dns模块异常错误——ModuleNotFoundError: No module named 'dns'_第1张图片
原来他要导入dns模块下的resolver模块,结果给出错了。无奈之下,我又得去查dnspython模块的内容。在dos命令行中输入如下命令:

pip show dnsPython

反馈结果如下:

Name: dnspython
Version: 1.16.0
Summary: DNS toolkit
Home-page: http://www.dnspython.org
Author: Bob Halley
Author-email: halley@dnspython.org
License: BSD-like
Location: c:\users\14383\appdata\local\programs\python\python38\lib\site-packages
Requires:
Required-by: mysql-connector-python

嘿,我的个亲娘唉!!!模块不是在这吗?为甚导不进去,加载不成功?什么问题呢?经过博主反复的pip install 和 pip uninstall 后,还是出现导入模块不存在的问题。不过呢,有百度啊!!!百度查了半天,没查到任何有用的信息,所以去官网查!!!查了半天,也没有什么问题啊!!!奇了怪了。最后无奈之下,用最原始的方法,打开文件所在地址,直接查文件代码。
在刚才展示的模块信息中,复制location地址,在电脑上检索这个位置的文件。文件目录如下:
python导入dns模块异常错误——ModuleNotFoundError: No module named 'dns'_第2张图片
我日,我明白了。原来是大小写的问题,博主真的是够够的了,mysql.connector初始化文件__init__.py导入的是小写体。pip install dnspython安装的dnspython模块,默认给的名称却是大写体。大小写的问题,所以修改文件DNS为小写dns,为什么不到初始化文件中修改,原因很简单,改的地方太多了。
接下来,在dos命令上,输入python,导入模块mysql.connector,没有一点点的问题。


总结:python导入模块区分大小写,遇错先查大小写。

你可能感兴趣的:(python)