首页 > 解决方案 > 导入 tensorflow 会导致 python 3.6.5 错误

问题描述

Tensorflow 曾经在我的电脑上工作。但是现在当我尝试import tensorflowpython 本身错误时。我没有接到回溯电话来告诉我错误是什么。我收到一个窗口提示,上面写着“Python 已停止工作”。当我单击“调试”时,我得到的只是“python.exe 中发生未处理的 win32 异常”。我从来没有一个python包对我来说实际上是错误的python本身,如果我没有安装正确的东西,我总是会遇到python抛出的回溯错误。

我已经尝试卸载并重新安装 tensorflow(有效地从 1.7.0 更新到 1.12.0),但这并没有帮助。我不确定如何寻找这个问题的解决方案,因为除了上面非常通用的信息之外,我没有得到回溯或错误代码或错误消息。

我目前正在使用安装了 tensorflow 1.12.0(仅限 CPU)的 python 3.6.5。我的操作系统是 Windows 7 Enterprise 64 位。

有任何想法吗?

编辑:我正在使用的 python 发行版是通过 Anaconda,我试图通过 anaconda 提示符(命令行界面)直接运行 python。

EDIT2:我使用该faulthandler模块查看是否可以从中获取堆栈跟踪,并且我得到了 aWindows fatal exception: code 0xc0000139和 a Windows fatal exception: access violation,以及一堆链接到各个模块frozen importlib._bootstrap中的各个代码行的行。__init__.py

EDIT3:对于更多的上下文,这是在安装了很多安全软件的工作场所机器上。

标签: pythonpython-3.xtensorflow

解决方案


我已经解决了这个问题。以下过程用于查找和解决问题:

我使用该faulthandler模块强制 python 打印出堆栈跟踪并收到一个Windows fatal exception: access violation错误,这似乎表明问题确实是由 tensorflow 使用的某些模块引起的段错误。

我尝试通过执行 aconda update --all和 a来解决依赖关系conda clean --all,但没有解决问题。

我注意到虽然问题似乎是由h5pyandkeras模块引起的,所以我做了pip install --upgrade h5pyand pip install --upgrade kerasandpip install --upgrade tensorflow并且问题得到了解决。我现在使用tensorflow version 1.12.0,keras version 2.2.4h5py version 2.8.0.

解决这个问题的关键似乎是faulthander向我展示了哪些模块(h5py 和 keras)导致了段错误的模块。


推荐阅读