快速修复
。当Python找不到库
markupsafe
,会引发
ImportError: No module named 'markupsafe'
。这个错误最常见的来源是你没有把
markupsafe
和
pip 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之间的区别是什么?
ImportError
和ModuleNotFoundError
之间的区别是什么?
Python 定义了一个错误层次结构,所以一些错误类继承于其他错误类。在我们的例子中,ModuleNotFoundError
是ImportError
类的一个子类。
你可以在文档的这个截图中看到这一点。
你也可以使用 [issubclass()](https://blog.finxter.com/python-issubclass/)
内置函数来检查这种关系。
>>> issubclass(ModuleNotFoundError, ImportError)
具体来说,如果找不到模块 (例如,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**
.
等待安装结束并关闭所有弹出的窗口。
这里有一个类似的例子。
后端工程师 @ 美团
1686.1k