Anaconda和numpy中的不同numpy版本。IPython Shell中的不同numpy版本

Anaconda和numpy中的不同numpy版本。IPython Shell中的不同numpy版本,python,numpy,Python,Numpy,我曾经学习过如何获得numpy的版本。但是,当我运行conda list | grep numpy时,我得到: 但是,当我从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,即虚拟

我曾经学习过如何获得numpy的版本。但是,当我运行conda list | grep numpy时,我得到:

但是,当我从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向我展示的内容:

根据,这里是_文件和sys.path。请注意,出于隐私问题,我已隐藏了我的姓名。

除了anaconda中的Python3环境之外,似乎还有另一个安装了IPython和numpy的python

看起来PyCharm和Anaconda正确地看到了相同的numpy版本,而IPython(我假设您不是从Anaconda环境中开始的)看到了另一个使用旧numpy的python安装。事实上,您的输出显示,在C:\Users\。。。它不属于蟒蛇

要使numpy 1.15在IPython中可用,您可以通过键入terminal Easter解决方案从anaconda环境中启动IPython

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

或者,通过查看,让本地IPython从anaconda环境加载模块。考虑到两个python安装产生的交叉链接,在这种情况下不建议使用此选项。

问题是PyCharm从location 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)
以上答案的灵感来源于。它没有提供解决方案。我在上面发布了一个解决方案

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