Anaconda 中的不同 numpy 版本和 IPython Shell 中的 numpy.__version__

Posted

技术标签:

【中文标题】Anaconda 中的不同 numpy 版本和 IPython Shell 中的 numpy.__version__【英文标题】:Different numpy version in Anaconda and numpy.__version__ in IPython Shell 【发布时间】:2019-03-13 19:56:31 【问题描述】:

我用How do I check which version of NumPy I'm using? 学习了如何获取numpy的版本。但是,当我运行 conda list | grep numpy 时,我得到:

numpy                     1.15.2           py36ha559c80_0
numpy-base                1.15.2           py36h8128ebf_0
numpydoc                  0.8.0                    py36_0

但是,当我从 IPython shell 运行版本时,我得到:

import numpy as np
np.__version__
Out: '1.13.3'
np.version.version
Out: '1.13.3'
np.version.full_version
Out: '1.13.3'

为什么这两个版本不同?我应该相信哪一个?谢谢你的帮助。


请注意,我没有使用venv(即虚拟环境)。我直接访问 Anaconda 的包。所以,版本控制没有问题。


以下是 PyCharm 向我展示的内容:


根据Conda's version information on package doesn't correspond to __version__,这里是__file__sys.path。请注意,出于隐私问题,我已经隐藏了我的名字。

【问题讨论】:

【参考方案1】:

您似乎除了anaconda 中的python 3 环境之外,还安装了另一个pythonIPythonnumpy

看起来 PyCharm 和 Anaconda 看到(正确)相同的 numpy 版本,而 IPython,我假设您不是从您的 anaconda 环境中开始,看到另一个 python 安装较旧的 @ 987654330@。事实上,您的输出显示,C:\Users\... 中还有另一个 python3.6,它不属于 anaconda

要使numpy 1.15IPython 中可用,您可以在anaconda 环境中通过在终端中输入来启动IPython(更简单的解决方案)

C:\>activate <your_anaconda_environment_name>
(<your_anaconda_environment_name>) C:\>ipython

或者您通过查看this answer 使您的本地IPythonanaconda 环境中加载模块。在这种情况下,这不是推荐的选项,因为会产生两个 python 安装的交叉链接。

【讨论】:

【参考方案2】:

问题是 PyCharm 从位置 App-data\roaming... 读取较旧的 python 版本我所做的是在启动脚本中,我添加了以下代码。

print("Correcting sys paths now...")
paths = [
'C:\\Anaconda3\\python36.zip',
 'C:\\Anaconda3\\DLLs',
 'C:\\Anaconda3\\lib',
 'C:\\Anaconda3',
 'C:\\Anaconda3\\lib\\site-packages',
 'C:\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\Anaconda3\\lib\\site-packages\\Pythonwin',
 'C:\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
]
import sys
for path in reversed(paths):
    sys.path.insert(0,path)
print("Completed correcting sys paths now...")
del path
del paths

以上代码将强制 Python 从 Anaconda 读取最新文件。但是,如果您使用的是虚拟环境,则需要指向该环境。

如果你想知道 Python 安装在哪里,可以运行:

import os
import sys
os.path.dirname(sys.executable)

以上答案的灵感来自conda python isn't using the numpy version I try install if I also specify that it should use python 2。它不提供解决方案。我已经在上面发布了一个解决方案。

【讨论】:

以上是关于Anaconda 中的不同 numpy 版本和 IPython Shell 中的 numpy.__version__的主要内容,如果未能解决你的问题,请参考以下文章

Anaconda使用入门

有没有办法让 Spyder 在 Anaconda 上导入 numpy?

安装 Anaconda 后无法导入 numpy

Anaconda 使用初步

怎么用anaconda创建虚拟环境

如何改变anaconda 的 gcc 版本