导入tensorflow会导致python 3.6.5错误

enu*_*ris 12 python python-3.x tensorflow

Tensorflow曾经在我的电脑上工作.但是现在当我尝试import tensorflowpython本身出错时.我没有收到追溯电话,告诉我错误是什么.我得到一个窗口的提示,上面写着"Python已停止工作".当我点击"debug"时,我得到的是"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模块来查看是否可以从中获取堆栈跟踪,并且我得到了a Windows fatal exception: code 0xc0000139和a Windows fatal exception: access violation,以及链接到frozen importlib._bootstrap各种__init__.py模块中的各种代码行的一堆行.

编辑3:对于更多的上下文,这是在工作场所机器上安装了许多安全软件.

enu*_*ris 9

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

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

我尝试通过执行a conda update --allconda clean --all不是修复问题来修复依赖项.

我注意到,问题似乎来自h5pykeras模块,所以我做了pip install --upgrade h5py,pip install --upgrade keras并且pip install --upgrade tensorflow问题得到解决.我现在用的tensorflow version 1.12.0,keras version 2.2.4h5py version 2.8.0.

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

  • 请接受您提供的答案,以供将来阅读该问题的用户使用 (4认同)