Python包(tensorflow)显示pip列表和.__version__输出之间不匹配的版本



我今天突然遇到这种情况,下面所有的输出都是在相同的环境下。

pip show tensorflow,输出为:

Name: tensorflow
Version: 1.14.0rc1

但是如果我输入python

python

>>> import tensorflow as tf

>>> print(tf.__version__)。它给:

'1.13.1'

我确信我在纯终端或IDE中需要的环境下使用相同的python。这很奇怪,因为我以前没有这个问题。这两天我刚刚安装了一些其他的软件包,但我相信它们与tensorflow无关。您还可以通过pip show tensorflowpip list的输出来验证这一点,以查看版本是否为1.14.0rc1。那么为什么当我实际使用python时,tensorflow没有正确加载?

通过以下方法解决:

(相同环境下)

pip uninstall tensorflow(为了重新安装tensorflow的正确版本)

pip install tensorflow==1.14.0rc1

注意在安装过程中,有一条来自终端的信息:

Installing collected packages: tensorflow
Attempting uninstall: tensorflow
Found existing installation: tensorflow 1.13.1
Uninstalling tensorflow-1.13.1:
Successfully uninstalled tensorflow-1.13.1

所以看起来tensorflow 1.13.1之前被意外地安装了,每当在python程序import tensorflow中,在搜索阶段,它在找到1.14.0rc1版本之前就会击中tensorflow==1.13.1。虽然pip list只显示tensorflow==1.14.0rc1而不显示tensorflow==1.13.1也可能是由于其内部搜索或重复包解析机制。