解决:[Fixed] ModuleNotFoundError:没有名为'markupsafe'的模块

1,820 阅读5分钟

快速修复。当Python找不到库markupsafe ,会引发ImportError: No module named 'markupsafe' 。这个错误最常见的来源是你没有把markupsafepip install markupsafe 一起明确安装。另外,你的计算机上可能有不同的Python 版本,而markupsafe 并没有为你使用的特定版本安装。

问题的提出

你刚刚了解了markupsafe 库的强大功能,你想试试它,所以你用下面的语句开始你的代码。

import markupsafe

这应该是将Pandas库导入你的(虚拟)环境中。然而,它只抛出了以下ImportError: No module named markupsafe

>>> import markupsafe
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    import markupsafe
ModuleNotFoundError: No module named 'markupsafe'

解决思路1:安装markupsafe库

最有可能的原因是,Python 在其标准库中没有提供markupsafe 。你需要先安装它!

在能够导入Pandas模块之前,你需要用Python的软件包管理器pip请确保你的机器上已经安装了 pip。

为了解决这个错误,你可以在你的Windows shell中运行以下命令。

$ pip install markupsafe

这个简单的命令在你的Windows、Linux和MacOS的虚拟环境中安装了markupsafe 。它假定你的pip 版本已经更新。如果它不是,请在你的终端、命令行或shell中使用以下两个命令(无论如何这样做都没有坏处)。

$ python -m pip install --upgrade pip
$ pip install pandas

💡 注意:不要复制和粘贴 符号。这只是为了说明,你在你的shell/终端/命令行中运行它。$

解决思路2:修复路径

即使你已经安装了markupsafe 库,这个错误可能仍然存在。这很可能是因为pip 已经安装了,但不在你可以使用的路径中。尽管pip 可能已经安装在你的系统上,但脚本却无法找到它。因此,它无法使用pip 在正确的路径中安装该库。

要解决Windows中的路径问题,请按照下面的步骤进行。

第1步:打开安装Python的文件夹,在命令提示符下键入where python

第二步:一旦你打开了Python 文件夹,浏览并打开Scripts 文件夹并复制其位置。同时验证该文件夹是否包含pip 文件。

第3步:现在在命令提示符中使用cd 命令和你之前复制的位置打开Scripts 目录。

第4步:现在使用pip install markupsafe 命令来安装这个库。下面是一个类似的例子。

在完成上述步骤后,再次执行我们的脚本。你应该得到所需的输出。

其他解决思路

  • ModuleNotFoundError 可能是由于相对进口而出现的。
  • 你可能在你的机器上混淆了Python和pip的版本。在这种情况下,要为Python 3安装markupsafe ,你可能想用python3 -m pip install markupsafe ,甚至pip3 install markupsafe 来代替pip install markupsafe
  • 如果你在服务器端遇到这个问题,你可能想试试以下命令pip install --user markupsafe
  • 如果你使用的是Ubuntu,你可能想试试这个命令。 sudo apt install markupsafe

理解 "import" 语句

import markupsafe

在 Python 中,import 语句有两个主要用途。

  • 通过模块的名字搜索模块,加载它,并初始化它。
  • import 语句的范围内,在本地命名空间中定义一个名字。然后在整个代码中使用这个本地名称来引用被访问的模块。

ImportError和ModuleNotFoundError之间的区别是什么?

ImportErrorModuleNotFoundError 之间的区别是什么?

Python 定义了一个错误层次结构,所以一些错误类继承于其他错误类。在我们的例子中,ModuleNotFoundErrorImportError 类的一个子类。

你可以在文档的这个截图中看到这一点。

你也可以使用 [issubclass()](https://blog.finxter.com/python-issubclass/)内置函数来检查这种关系。

>>> issubclass(ModuleNotFoundError, ImportError)
True

具体来说,如果找不到模块 (例如,markupsafe),Python 会引发ModuleNotFoundError 。如果可以找到,可能是加载模块或模块中的某些特定文件出现了问题。在这些情况下,Python 会引发一个ImportError

如果一个导入语句不能导入一个模块,它会引发一个 ImportError.这可能是由于错误的安装或无效的路径造成的。在Python 3.6 或更新的版本中,这通常会引发一个 ModuleNotFoundError.

如何解决 "ModuleNotFoundError:没有名为'markupsafe'的模块 "在PyCharm中。

如果你在PyCharm 中创建了一个新的Python项目,并试图导入markupsafe 库,它就会引发以下错误信息。

Traceback (most recent call last):
  File "C:/Users/.../main.py", line 1, in <module>
    import markupsafe
ModuleNotFoundError: No module named 'markupsafe'

Process finished with exit code 1

原因是每个 PyCharm 项目,默认都会创建一个虚拟环境,你可以在其中安装自定义的 Python 模块。但是这个虚拟环境最初是空的--即使你已经在你的电脑上安装了markupsafe!

下面是一个截图,说明了这一点,对于 [pandas](https://blog.finxter.com/pandas-quickstart/)库的截图。markupsafe 也会出现类似的情况。

修复方法很简单。使用PyCharm 的安装工具提示,在你的虚拟环境中安装 Pandas--点击两下,你就可以开始了

首先,在你的编辑器中右键点击pandas 文本。

其次,在你的上下文菜单中点击 "Show Context Actions"。在出现的新菜单中,点击 "安装Pandas "并等待PyCharm完成安装。

在你的安装成功完成后,代码将运行。

作为一个替代方案,你也可以打开底部的Terminal 工具,然后输入。

$ pip install markupsafe

你也可以在 PyCharm 中使用下面的程序手动安装一个新的库,比如markupsafe

  • 打开 **File > Settings > Project**从PyCharm菜单中打开
  • 选择你当前的项目。
  • 点击 **Python Interpreter**标签,在你的项目标签中。
  • 点击小的 **+**符号来添加一个新的库到项目中。
  • 现在键入要安装的库,在你的例子中是Pandas,然后点击 **Install Package**.
  • 等待安装结束并关闭所有弹出的窗口。

这里有一个类似的例子。