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
环境之外,还安装了另一个python
和IPython
和numpy
。
看起来 PyCharm 和 Anaconda 看到(正确)相同的 numpy
版本,而 IPython
,我假设您不是从您的 anaconda 环境中开始,看到另一个 python
安装较旧的 @ 987654330@。事实上,您的输出显示,C:\Users\...
中还有另一个 python3.6
,它不属于 anaconda
。
要使numpy 1.15
在IPython
中可用,您可以在anaconda 环境中通过在终端中输入来启动IPython
(更简单的解决方案)
C:\>activate <your_anaconda_environment_name>
(<your_anaconda_environment_name>) C:\>ipython
或者您通过查看this answer 使您的本地IPython
从anaconda
环境中加载模块。在这种情况下,这不是推荐的选项,因为会产生两个 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__的主要内容,如果未能解决你的问题,请参考以下文章