我正在使用 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'
为什么找不到模块,我该如何解决这个错误?
最佳答案
安装 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 笔记本/实验室用户
如果你已经有 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 环境之间进行选择。
关于python - 使用 pip3 安装 Keras,但出现 "No Module Named keras"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54050581/