当前位置: 首页 > backend >正文

ModuleNotFoundError:如何解决 no module named Python 错误?

当你在一个 Python 文件中导入一个模块时,Python 试图通过几种方式来处理这个模块。有时,Python 会在之后抛出 ModuleNotFoundError。这个错误在 Python 中是什么意思?

顾名思义,当你试图访问或使用一个找不到的模块时就会发生这个错误。以标题为例,找不到“名为 Python 的模块”。

这里的 Python 可以是任何模块。当我试图导入一个找不到的 numpys 模块时,会出现下面这个错误:

import numpys as np

错误是这样的:在这里插入图片描述
以下是一些可能找不到模块的原因:

你的电脑上没有安装你想导入的模块
你对模块的拼写不正确(这仍然与前一点有关,即拼写错误的模块没有安装)…例如,在导入时将 numpy 拼成 numpys
你对一个模块使用了不正确的大小写(这仍然与第一点有关)…例如,在导入过程中把 numpy 拼成 NumPy,就会出现找不到模块的错误,因为这两个模块是不一样的
你使用错误的路径导入了一个模块

如何解决 Python 中的 ModuleNotFoundError 问题

正如我在上一节中提到的,有几个原因可能导致找不到模块。下面是一些解决方案。
1.确保导入的模块已经安装
以 numpy 为例。你在你的代码中,在一个叫作 “test.py” 的文件中使用这个模块,像这样:

import numpy as nparr = np.array([1, 2, 3])print(arr)

如果你试图用 python test.py 运行这段代码,会得到这个错误:

ModuleNotFoundError: No module named "numpy"

那么很有可能是你的设备上没有安装 numpy 模块。你可以这样安装该模块:

python -m pip install numpy

安装后,之前的代码将正确工作,终端将打印结果:

[1, 2, 3]

2.确保模块的拼写正确

在某些情况下,你可能已经安装了你需要的模块,但试图使用它时仍然会出现 ModuleNotFound 错误。在这种情况下,可能是你的拼写不正确。以这段代码为例:`

import nompy as nparr = np.array([1, 2, 3])print(arr)

在这里,你已经安装了 numpy,但运行上述代码会出现这个错误:

ModuleNotFoundError: No module named "nompy"

This error comes as a result of the misspelled numpy module as nompy (with the letter o instead of u). You can fix this error by spelling the module correctly.

3. 确保模块的大小写正确

与模块未找到错误的拼写问题类似,也可能是你的模块拼写正确,但用错了大小写。这里有一个例子:

import Numpy as nparr = np.array([1, 2, 3])print(arr)

对于这段代码,你已经安装了 numpy,但运行上述代码会出现这个错误:

ModuleNotFoundError: No module named 'Numpy'

由于大小写的不同,numpy 和 Numpy 是不同的模块。你可以通过用正确的大小写拼写模块来解决这个错误。

4.确保你使用正确的路径

在 Python 中,你可以使用绝对路径或相对路径从其他文件导入模块。在这个例子中,我将着重介绍绝对路径。

当你试图从错误的路径访问一个模块时,你也会得到这里找不到模块的结果。这里有一个例子:

假设你有一个名为 test 的项目文件夹。在它里面,你有两个文件夹 demoA 和 demoB。

demoA 有一个 init.py 文件(以显示它是一个 Python 包)和一个 test1.py 模块。

demoA 也有一个 init.py 文件和一个 test2.py 模块。

结构如下:

└── test├── demoA├── __init__.py│   ├── test1.py└── demoB├── __init__.py├── test2.py

这是 test1.py 的内容:

def hello():print("hello")

假设你想在 test2.py 中使用这个声明的 hello 函数。下面的代码将抛出一个未找到模块的错误:

import demoA.test as test1test1.hello()

代码将抛出以下错误:

ModuleNotFoundError: No module named 'demoA.test'

其原因是我们使用了错误的路径来访问 test1 模块。正确的路径应该是 demoA.test1。当你纠正了这一点,代码就可以运行了:

import demoA.test1 as test1test1.hello()
# hello

我的职业生涯开始和大多数码农一样,刚开始接触都是最基础的软件测试、编程语法。那时候在B站CSDN到处找学习资源,在这个吃技术的IT行业来说,不断学习是至关重要的。但是我之前做的是最基础的业务工作,随着时间的消磨,让我产生了对自我价值和岗位意义的困惑。

我的程序员之路,一路走来都离不开每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友特意花了一段时间整理编写了下面的《python架构师学习路线》,也整理了不少【网盘资源】,需要的朋友可以公众号【Python大本营】获取网盘链接。
希望会给你带来帮助和方向。

总结

为了处理一个导入的模块,Python 检查像内置库、已安装的模块和当前项目中的模块这样的地方。如果它不能处理这个模块,它就会抛出 ModuleNotFoundError。

有时你没有安装那个模块,所以你必须安装它。有时是模块拼写错误,或命名时用了错误的大小写,或路径错误。在这篇文章中,我展示了如果你遇到这种错误的四种可能的修复方法。

我希望你能从文章中得到启发:)

http://www.xdnf.cn/news/11090.html

相关文章:

  • 驱动人生深度扫描功能上线!使用感怎么样?
  • 北大计算机学院 教授 湖南人,北大湘籍教授邹恒甫简历
  • 目标世界上最小的Linux系统—ttylinux体验
  • 分享116个图片JS特效,总有一款适合您
  • 免费php空间带域名,freehostia免费250MB无广告PHP空间可绑域名
  • “应用程序配置不正确,程序无法启动” 解决办法(vc2008 sp1)
  • python中if brthon环境安装包_Ant、Gradle、Python三种打包方式的介绍
  • GNS3的RIP协议的动态路由配置
  • 暴力破解之密码字典
  • 由于找不到d3dx9_41.dll文件无法运行程序解决办法
  • WINDOWS常用端口列表
  • HTC G14解锁S OFF 刷机 获取ROOT权限
  • 动态评分查询动态评分怎么刷当流量到来之时
  • 著名电子竞技游戏网站分析
  • open***中server.conf和client.conf配置文件详解
  • 十款ASP的CMS系统排名
  • 路由器也可刷机,开源的Tomato DualWAN
  • Windows IIS服务器安装(超详细)
  • 按键精灵--VS挤房器
  • 【雕爷学编程】MicroPython手册之 Zephyr 磁盘访问
  • 如何使用HTML制作个人网站(如何搭建个人博客)
  • ps切图抠图详解-web前端(转)
  • 使用51单片机制作秒表的详细过程
  • 什么是tftp服务器? 如何搭建tftp服务器?
  • PCB 铜厚厚度和线宽的选择
  • SQL触发器实例
  • 中国厉害的黑客组织?别说只知道红客联盟,知道“他们”才厉害
  • Windows下搭建ffmpeg+VS2008开发环境详细教程
  • 网站建设的一些基本教程操作
  • mysql 取int_MySQL 字符串 转 int/double CAST与CONVERT 函数的用法