Jupyter Notebook中TensorFlow导入正常,但Python脚本运行时报‘No module named 'tensorflow.keras'’错误的求助
Jupyter Notebook中TensorFlow导入正常,但Python脚本运行时报‘No module named 'tensorflow.keras'’错误的求助
嗨,我看了你遇到的问题,这种“同一个环境里Jupyter能用但终端跑脚本不行”的情况,大概率是终端和Jupyter实际使用的Python环境不一致导致的,咱们一步步来排查解决:
核心原因分析
Jupyter Notebook通常会自动关联你当前激活的Conda环境(或者你之前配置的内核),但终端很容易出现“看起来激活了环境,实际用的还是系统默认Python”的情况,导致找不到你在Conda环境里安装的TensorFlow和Keras。
具体解决步骤
1. 确认终端当前使用的Conda环境
- 打开终端,先输入以下命令查看所有Conda环境,找到你安装TF的那个环境(带
*的是当前激活的环境):conda info --envs - 如果激活的不是目标环境,手动激活它:
conda activate 你的环境名称 - 激活后,验证当前使用的Python路径是否属于这个Conda环境:
Windows系统输入:
你应该能看到路径里包含where pythonenvs/你的环境名称,而不是系统默认的Python路径(比如C:\PythonXX)。 - 再确认环境里确实安装了TF和Keras:
检查输出里的TensorFlow 2.15.0和Keras 2.15.0是否存在。pip list
2. 用正确的Python解释器运行脚本
很多时候,即使激活了Conda环境,直接输入python script.py还是会调用系统Python。你可以:
- 方法一:激活环境后,直接用
python script.py运行(确保激活环境后再执行这条命令) - 方法二:用Conda环境中Python的绝对路径来运行脚本,比如Windows下的示例路径:
C:\Users\你的用户名\miniconda3\envs\你的环境名\python.exe script.py
3. 验证Jupyter和终端的Python路径是否一致
在Jupyter Notebook里运行以下代码,查看它使用的Python路径:
import sys print(sys.executable)
把这个路径和终端激活环境后用where python得到的路径对比,如果一致,说明终端的问题就是没正确激活环境;如果不一致,说明Jupyter用了其他内核,你可以用以下命令把当前Conda环境添加到Jupyter内核(可选,主要解决Jupyter的环境一致性):
conda install ipykernel python -m ipykernel install --user --name=你的环境名称
4. 排查pip安装的正确性
有时候在Conda环境里用pip,可能不小心调用了系统的pip,导致TF安装到了系统Python里:
- 激活环境后,输入以下命令查看pip的路径:
Windows系统:
确认路径属于你的Conda环境。如果不是,先在环境里安装Conda版的pip:where pip
然后重新安装TF和Keras:conda install pippip install tensorflow==2.15.0 keras==2.15.0
5. 额外排查点
- 检查你的Python脚本里有没有手动修改
sys.path的代码,这可能会干扰模块的查找路径。 - 检查终端的
PYTHONPATH环境变量,有没有设置过可能覆盖默认模块路径的内容:
Windows系统输入:
如果有异常路径,可以暂时清空它再测试。echo %PYTHONPATH%
总结
最常见的问题就是终端没有正确激活目标Conda环境,导致使用了未安装TF的系统Python。按上面的步骤逐一排查,应该能解决问题。
备注:内容来源于stack exchange,提问作者Mathieu BOSSE
相关产品推荐
相关产品推荐

