ModuleNotFoundError: 没有名为openpyxl的模块-解决方法

326 阅读4分钟

你是否被 "ModuleNotFoundError: no module named openpyxl "的错误所困扰?初学Python的人在开始使用openpyxl库时经常被卡住。这是一个全行业的问题,在许多刚开始使用Python的编码者的屏幕上出现。

这通常是由于Python和Openpyxl之间的版本错误或安装不正确而发生的。无法找到正确的解决方案可能是一个令人头疼的问题,这就是为什么在这篇文章中,我们将通过编码员在openpyxl中遇到的最常见的错误,并得出每个错误的解决方案。

什么是openpyxl?

由于缺乏一个读取Open XML格式的Python库,所以需要openpyxl,它是目前行业标准的Python库,用于读写excel格式的文件。

所支持的格式有xlsx/xlsm/xltx/xltm。

大多数情况下,openpyxl遇到的错误是由于安装不正确造成的。而这些错误可以通过简单的重新安装得到解决。让我们来看看安装openpyxl的正确方法。

通过软件包管理器安装openpyxl

通过使用pip

安装任何Python库的最简单方法是使用pip。Pip是一个用Python编写的系统软件,它通过一个开源的库来安装和管理你的Python库。通过 pip 进行安装需要了解你的 Python 版本。

如果你使用的是Python2,安装任何库的语法是:

pip install 'package_name'

只用'pip'就可以为Python2版本安装任何Python包。

要为Python3安装,请写:

pip3 install 'x'

注意:在较新的 pip 版本中,主要是 3.0 以北的版本,当只输入 'pip' 时,pip 会默认安装 Python3 的软件包。在大多数新版本的Python中都有这种异常现象,如果你遇到了这种情况,建议你降低你的Python版本。

如果你的系统中有不止一个Python版本,而你又不确定vanilla pip3是否会获取正确的版本,你可以使用这个语法来代替。

python3 -m pip install --user xlsxwriter

通过使用Conda

许多程序员喜欢使用Conda而不是pip,因为它的虚拟环境功能。如果你想用Conda来安装openpyxl,请输入以下语法。

conda install -c anaconda openpyxl

OR

conda install openpyxl

第二个语法主要是针对最新的Conda版本(Conda 4.7.6或更高)。

根据你的操作系统进行安装

让我们来看看根据你使用的操作系统有哪些不同的安装方式

1.Windows

如果你使用的是windows,那么需要以下软件包来读写excel文件。要安装它们,请输入以下语法。

pip install openpyxl
pip install --user xlsxwriter
pip install xlrd==1.2.0

2.Ubuntu

Linux发行版更适合Python,但由于系统错误或安装不当,你仍然可能遇到一些错误。在Ubuntu中安装openpyxl的安全而正确的方法是进行以下操作。

在你的终端输入下面的语法。

对于Python2

sudo apt-get install python-openpyxl

对于Python3

sudo apt-get install python3-openpyxl

上述情况与顶部的例子类似。很多时候,不正确的安装是由于将Python2的openpyxl安装到Python3的系统中而造成的。

了解你的Python版本可以动手解决大部分的问题,如果问题仍然存在,那么降低你的Python版本并重新安装软件包是另一个选择。

脚本路径错误

很多时候,即使在正确的安装之后,openpyxl可能会抛出'modulenotfounderror'。这与你使用的安装管理器无关,因为软件包得到了正确的安装,但软件包管理器将其安装在其他的目录中。这主要发生在几个原因上:

  • 你的 Python 脚本保存在一个不同的目录中,而你的软件包管理器将它们安装在另一个目录中。
  • 最近的一次更新可能改变了目录的名称或路径
  • 手动安装可能创建了一个以上的脚本文件夹
  • 你的系统无法识别正确的脚本目录。

要解决这个问题,请在终端使用以下语法。

import sys
sys.append(full path to the site-package directory)

注意:上面的代码将Python重定向到搜索来自给定路径目录的导入包。这不是一个永久的解决方案,而是一个转折性的方法。

彻底根除这个问题是一个漫长的过程,因为它需要识别所有的脚本目录并将它们添加到'path'(安装软件包的脚本目录路径)中。为了避免这样的错误,我们必须识别并记住我们的脚本被安装的位置。知道位移发生的位置可以解决一半的问题,另外一半可以通过安装与你的python版本兼容的软件包得到解决。

总结

在这篇文章中,我们已经了解了人们在使用openpyxl时所面临的错误,以及解决这些错误的不同方法。这些方法不仅仅适用于openpyxl,也适用于许多显示 "filenotfounderror"的python库包。大多数情况下,错误的发生是由于不兼容的版本,错误的安装,或者安装在错误的目录下。