使用 pip3 安装 Keras,但出现“No Module Named keras”错误

ABC*_*BCD 3 python windows keras tensorflow keras-2

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的项目时,出现以下错误

ModuleNotFoundError: No module named 'keras'
Run Code Online (Sandbox Code Playgroud)

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

Pra*_*iel 6

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

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

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

更新畅达

conda update conda
Run Code Online (Sandbox Code Playgroud)

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

conda create -n awesome python=3.6 anaconda tensorflow keras
Run Code Online (Sandbox Code Playgroud)

一段时间后,一切都很好,激活您的环境并测试我们是否可以导入 keras。

conda activate awesome
python -c "import keras"
Run Code Online (Sandbox Code Playgroud)

完成令人敬畏的操作后,您可以像这样停用:

conda deactivate
Run Code Online (Sandbox Code Playgroud)

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

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

conda create -n awesome python=3.6 keras
Run Code Online (Sandbox Code Playgroud)

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

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

你可以做:

python -c "import sys;print(sys.path)"
Run Code Online (Sandbox Code Playgroud)

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

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

python3 -m pip install packages 
Run Code Online (Sandbox Code Playgroud)

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

更新:对于 Jupyter Notebook/Lab 用户

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

conda update conda
Run Code Online (Sandbox Code Playgroud)

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