今天在服务器上跑代码时遇到了keras导入错误:No module named ‘keras’,如图所示:
但是conda list查看之后发现keras是正常安装了的,并且也尝试了从TensorFlow导入keras的方法,都失败了。
直接进入python命令行调试,同样失败
$ python
Python 3.8.3 (default, Jul 2 2020, 16:21:59)
>>> from keras import metrics
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'keras'
这里我注意到奇怪的一点是,python的版本是默认的3.8.3而不是我在环境中安装的python3.6,但是查了一下也不知道具体原因。
正打算退出考虑重新装环境,却发现退出环境f后,到了环境c,不是base环境,于是我猜测可能是因为我直接从c环境激活了f环境导致的错误。于是继续退出直到base环境,再从base环境重新进入f环境,此时再查看python版本,就是属于f环境的python3.6,重新运行代码也顺利地完成了。
>>> exit()
(f) ***@pc-X10DRi:~$ python3 --version
Python 3.8.3
(f) ***@pc-X10DRi:~$ conda deactivate
(c) ***@pc-X10DRi:~$ conda deactivate
(base) ***@pc-X10DRi:~$ conda activate f
(f) ***@pc-X10DRi:~$ python --version
Python 3.6.10 :: Anaconda, Inc.
总结:在进入conda环境后,应该退出到base环境再进入新的环境,否则可能出错。
遇到在Anaconda环境中运行代码时keras模块导入失败的问题,尽管已安装keras。发现是由于从非base环境直接激活另一个环境导致Python版本错误。解决方法是确保退出到base环境后再进入目标环境,以确保正确使用安装的python3.6和对应的库。
1万+

被折叠的 条评论
为什么被折叠?



