python - 导入 tensorflow 会导致 python 3.6.5 错误
问题描述
Tensorflow 曾经在我的电脑上工作。但是现在当我尝试import tensorflow
python 本身错误时。我没有接到回溯电话来告诉我错误是什么。我收到一个窗口提示,上面写着“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:对于更多的上下文,这是在安装了很多安全软件的工作场所机器上。
解决方案
我已经解决了这个问题。以下过程用于查找和解决问题:
我使用该faulthandler
模块强制 python 打印出堆栈跟踪并收到一个Windows fatal exception: access violation
错误,这似乎表明问题确实是由 tensorflow 使用的某些模块引起的段错误。
我尝试通过执行 aconda update --all
和 a来解决依赖关系conda clean --all
,但没有解决问题。
我注意到虽然问题似乎是由h5py
andkeras
模块引起的,所以我做了pip install --upgrade h5py
and pip install --upgrade keras
andpip install --upgrade tensorflow
并且问题得到了解决。我现在使用tensorflow version 1.12.0
,keras version 2.2.4
和h5py version 2.8.0
.
解决这个问题的关键似乎是faulthander
向我展示了哪些模块(h5py 和 keras)导致了段错误的模块。
推荐阅读
- postgresql - 您可以更改 plpgsql 函数中的 IN 参数吗?
- apache-nifi - 阿帕奇尼菲|| InvokeHttp 处理器显示错误
- java - java.lang.NoClassDefFoundError:无法初始化类 - Kotlin 对象
- python - 用字典和条件替换行
- java - criteriaBuilder notEqual 函数不会为 manyToOne 类返回空值
- python - 根据条件从另一个df填充一个df子集中的NaN
- android - Android Studio 4.1 RC,升级后面临启动失败错误
- r - 有没有办法在多个矩阵行上使用“which”函数而不使用 & 多次?
- kubernetes - helm 忽略预安装钩子失败
- javascript - 您可以在反应组件中运行自定义 javascript 标签吗?