导入tensorflow使得Python 3.6.5出现错误。

12

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位。

有任何想法吗?

编辑:我使用Anaconda分发版,并尝试直接通过anaconda提示符(命令行界面)运行Python。

编辑2:我使用了fault_handler模块来查看是否可以得到堆栈跟踪,结果得到了一个Windows致命异常:代码0xc0000139和一个Windows致命异常:访问冲突,以及一堆指向各种_bootstrap__init__.py模块中的代码行的信息。

编辑3:为了更好的理解,这是在一台安装了大量安全软件的工作机器上。


你是否在使用Visual Studio进行Python开发? - Sandhiya - Intel
我正在尝试通过Anaconda提示符执行Python。我忘记包含这个细节了,我会立即补充的。 - enumaris
Python 用 C 写的模块如果出现段错误可能会导致解释器崩溃。听起来像是这里出了问题。我猜测你的 tensorflow 安装有问题——检查一下你是否安装了适合你平台(64 位 Windows)的正确版本,如果最后一个可用版本是 1.7.0 就降级到这个版本。也有可能是因为你安装的预编译版本包含一些不再适用的优化,因此不支持你的 CPU。 - mbatchkarov
@mbatchkarov 我会尝试降级,但 1.7.0 曾经是可用的,然后突然间就不行了,这也是我升级的原因。 - enumaris
我已经尝试了1.7.0、1.7.1、1.6.0和1.12.0,但都无法工作。所有版本都导致相同的Windows错误。 - enumaris
请提供您的Windows路径中存在的值。这些值是否与您的Python安装相匹配? - Sven Hakvoort
2个回答

9
我已经解决了这个问题。以下步骤被用来查找和解决问题:
我使用了 "faulthandler" 模块强制 Python 打印出堆栈跟踪,并收到了一个 "Windows 致命异常: 访问冲突" 错误,这似乎表明问题确实是由 TensorFlow 使用的某个模块引起的段错误。
我尝试通过执行 "conda update --all" 和 "conda clean --all" 来修复依赖关系,但并没有解决问题。
我注意到问题似乎是由 "h5py" 和 "keras" 模块引起的,所以我执行了 "pip install --upgrade h5py"、"pip install --upgrade keras" 和 "pip install --upgrade tensorflow",问题得到了解决。现在我正在使用 "tensorflow 版本 1.12.0"、"keras 版本 2.2.4" 和 "h5py 版本 2.8.0"。
解决这个问题的关键似乎是 "faulthander" 模块,它向我展示了哪些模块(h5py 和 keras)导致了段错误。

4
请接受您提供的答案,以便未来的用户阅读问题时可以参考。 - PROW
当我在我的conda环境中安装openCV时,它不知何故降级了h5py,并开始给我报错。升级h5py解决了这个问题。 - Ahmad Moussa

0
请尝试以下步骤。
conda install -c anaconda qt
conda update qt pyqt

重新开始


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接