【问题标题】:Installed Keras with pip3, but getting the "No Module Named keras" error使用 pip3 安装 Keras,但出现“No Module Named keras”错误
【发布时间】:2019-01-05 09:10:58
【问题描述】:

我正在使用 CNN、Keras 和 Windows 上的 Tensorflow 后端创建叶识别分类器。我已经安装了 Anaconda、Tensorflow、numpy、scipy 和 keras。

我使用 pip3 安装了 keras:

C:\> pip3 list | grep -i keras
Keras               2.2.4
Keras-Applications  1.0.6
Keras-Preprocessing 1.0.5

但是,当我运行我的项目时,我收到以下错误

ModuleNotFoundError: No module named 'keras'

为什么找不到模块,我该如何解决这个错误?

【问题讨论】:

  • 这两种解决方案都适合您吗?

标签: python windows tensorflow keras keras-2


【解决方案1】:

安装 Anaconda,然后使用 pip 接缝安装包,例如混淆 Anaconda(或任何其他包管理工具)的目标

Anaconda 可以帮助您组织环境及其依赖关系。

假设您的系统路径上有 conda,请执行以下操作:

更新 conda

conda update conda

我们可以使用 python 3.6 创建一个名为“awesome”的环境,并添加 anaconda(numpy、scipy、jupyter notebook/lab 等)以及 tensorflow 和 keras 附带的所有很棒的数据科学包。如果需要,您可以删除 anaconda 并使用最少的包。

conda create -n awesome python=3.6 anaconda tensorflow keras

过了一段时间,一切正常,激活你的环境并测试我们是否可以导入 keras。

conda activate awesome
python -c "import keras"

完成了超赞后,您可以这样停用:

conda deactivate

conda 比 pip 更好,因为它处理库的兼容性。它为您升级和降级软件包。

Anaconda 的美妙之处在于,您只需安装主包,它就会为您安装所有依赖项,因此您可以这样做:

conda create -n awesome python=3.6 keras

这会自动找到所有keras依赖或设置为默认的包如tensorflow和numpy

你做错了什么
你得到这个错误是因为你的 python sys.path 找不到你安装的包。

你可以这样做:

python -c "import sys;print(sys.path)"

这将打印您的 python 将查找包的位置。 keras 库的路径很可能不是其中之一。

当您只使用 pip 进行安装时,具有该 pip 的默认 python 将可以访问您的安装。因此,如果您有多个 Python,建议明确如下:

python3 -m pip install packages 

所以在这里你可以确定是 python3 目录中的 Python 进行了安装。这就是我们需要环境来保持我们的 Python 版本和依赖项不同且易于控制的地方。 Anaconda、Pipenv、Poetry、piptools 等都在努力帮助您更好地管理您的系统;)

更新:适用于 Jupyter Notebook/Lab 用户

如果您已经拥有 Jupyter,比如说在您的基础环境中,我们可以添加 Awesome 作为另一个内核:

conda activate awesome 
(awesome ) conda install ipykernel -y
(awesome) python -m ipykernel install --user --name my_env --display-name "Awesome"
conda deactivate

现在,如果您运行 Jupyter,您应该可以在 Base Python 和 Awesome 环境之间进行选择。

【讨论】:

  • 我可以通过这种优雅的方法解决我面临的 conda 问题(condaupgradeerror)。非常感谢。
  • 按照这个说明,我创建了虚拟环境“很棒”,安装在 python 3.6、tensorflow 和 keras 中。随后,我列出了环境中加载的所有包,并验证了两者都在其中。但是,当尝试在 jupyter notebook 中导入 tensorflow 和 keras 时,它返回错误“no module name ...”我的问题是什么?
  • 您的 Jupyter 无法访问您的出色环境。更新 Jupyter 部分的答案
【解决方案2】:

听起来您可能使用 pip3 进行安装,同时在您的机器上安装了多个 python。

在安装 Anaconda 之前,您的机器上是否安装了 python?有时 PATH 变量中的 pip3 与 Anaconda 的版本不同。

试试这个,然后再次运行您的代码:

conda install keras

运行 conda list 以查看它是否安装在您的 Anaconda python 安装中:

conda list

更新

如果还是不行,试试这个:

\path\to\Anaconda\python\python3 -m pip3 install keras

这使用 pip3 但确保在安装 keras 时选择正确的安装。

【讨论】:

  • 是的,我在安装 Anaconda 之前在我的机器上安装了 python。我尝试了你的代码。仍然无法正常工作。
  • @kajasumanie kanapathipillai 我确信它是相关的。如果它与“ModuleNotFoundError: No module named 'keras'”不同,你能把你得到的堆栈跟踪粘贴到这里吗?当您尝试时,请检查它是否在输出中:conda list in the shell。
  • 它是 'ModuleNotFoundError: No module named 'keras'
  • @kajasumanie kanapathipillai 当您在控制台中尝试“conda list”时,您是否在列表中看到了它?
  • @kajasumanie kanapathipillai 看看我刚刚对解决方案所做的更新。试一试,让我知道它是怎么回事。我相信它会为你工作。 :)
【解决方案3】:

它帮助我首先在命令行上检查是否确实安装了 Keras,如之前的答案中所述。

python -c "import keras"

如果您在使用该命令时遇到错误,则可能是您没有在正确的环境中安装 keras。

经过多种解决方案后,我仍然收到错误消息。事实证明,我必须重新启动我的 jupyter notebook 才能使更改生效——以防万一你正在使用 notebook。

【讨论】:

    【解决方案4】:

    同样的事情发生在我身上。我卸载了 keras,然后重新安装了一个特定的版本,它工作正常。

    pip uninstall keras
    

    那么这个 -->

    pip install keras==2.2.4
    

    【讨论】:

      【解决方案5】:

      确保您正在使用的 pip 实例连接到您正在使用的同一 python 实例。由于我的机器上有几个 python 安装,我通过直接使用我想要的 python 版本中的 pip 模块来避免它们之间的混淆,而不是使用pip

      python3 -m pip install keras
      python3 -c "import keras" // <-- should execute without an error
      

      【讨论】:

        猜你喜欢
        • 2021-03-13
        • 2018-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-10
        • 2019-11-22
        相关资源
        最近更新 更多