当你在一个 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 np
arr = 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 np
arr = 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 np
arr = 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 test1
test1.hello()
代码将抛出以下错误:
ModuleNotFoundError: No module named 'demoA.test'
其原因是我们使用了错误的路径来访问 test1 模块。正确的路径应该是 demoA.test1。当你纠正了这一点,代码就可以运行了:
import demoA.test1 as test1
test1.hello()
# hello
我的职业生涯开始和大多数码农一样,刚开始接触都是最基础的软件测试、编程语法。那时候在B站CSDN到处找学习资源,在这个吃技术的IT行业来说,不断学习是至关重要的。但是我之前做的是最基础的业务工作,随着时间的消磨,让我产生了对自我价值和岗位意义的困惑。
我的程序员之路,一路走来都离不开每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友特意花了一段时间整理编写了下面的《python架构师学习路线》,也整理了不少【网盘资源】,需要的朋友可以公众号【Python大本营】获取网盘链接。
希望会给你带来帮助和方向。
总结
为了处理一个导入的模块,Python 检查像内置库、已安装的模块和当前项目中的模块这样的地方。如果它不能处理这个模块,它就会抛出 ModuleNotFoundError。
有时你没有安装那个模块,所以你必须安装它。有时是模块拼写错误,或命名时用了错误的大小写,或路径错误。在这篇文章中,我展示了如果你遇到这种错误的四种可能的修复方法。文章来源:https://www.toymoban.com/news/detail-812597.html
我希望你能从文章中得到启发:)文章来源地址https://www.toymoban.com/news/detail-812597.html
到了这里,关于ModuleNotFoundError:如何解决 no module named Python 错误?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!