7 python numpy jupyter-notebook
我有错误
TypeError: slice indices must be integers or None or have an __index__
method
Run Code Online (Sandbox Code Playgroud)
并搜索解决方案,并得到我需要降级numpy的版本,然后尝试使用此命令
python
import numpy
numpy.__version__
Run Code Online (Sandbox Code Playgroud)
并得到
>>> numpy.__version__
'1.14.5'
Run Code Online (Sandbox Code Playgroud)
但是当我使用
pip show numpy
Name: numpy
Version: 1.11.0
Summary: NumPy: array processing for numbers, strings, records, and
objects.
Home-page: http://www.numpy.org
Author: NumPy Developers
Author-email: numpy-discussion@scipy.org
License: BSD
Location: /usr/local/lib/python3.4/dist-packages
Requires:
Required-by:
Run Code Online (Sandbox Code Playgroud)
现在python使用的是什么版本?
指令
$ python3 -m pip --version
$ pip --version
pip 18.0 from /usr/local/lib/python3.4/dist-packages/pip (python 3.4)
Run Code Online (Sandbox Code Playgroud)
和
$ python -m pip --version
pip 18.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
Run Code Online (Sandbox Code Playgroud)
您可能会在python2,python3和不同的python 虚拟环境之间感到困惑。
在您的情况下,这是最可靠的来源
$ python
>>> import numpy
>>> numpy.__version__
'1.14.5'
Run Code Online (Sandbox Code Playgroud)
要升级/降级numpy,您需要使用pip与python您正在使用的相对应的numpy 。我认为您使用的是python 2.7。在处查找pip与已安装的软件包相对应的可执行文件/usr/local/lib/python2.7/dist-packages/pip。
这不是“正确”的方法,但是会起作用
python -m pip install numpy==x.y.z
Run Code Online (Sandbox Code Playgroud)
python 只会对应您正在使用的python解释器-m pip 将找到与您安装的python 2.7相对应的正确点numpy==x.y.z 将迫使降级现在,您可能会遇到权限问题,这将诱使您使用sudo。此时,您可以尝试添加--user标志...,但是如果确实需要使用sudo,则可以考虑创建virtualenv。(请。)
其他人对此发表了评论:也许您的索引实际上不是整数。
(相关:切片索引必须为整数或无,或具有__index__方法)
在代码中找到索引到列表中的位置,并确保它们实际上是整数。
assert isinstance(a, int), 'a must be an int'
assert isinstance(b, int), 'b must be an int'
x = y[a:b]
Run Code Online (Sandbox Code Playgroud)
继续添加这些类型断言,直到找到错误为止。
您可以使用 --upgrade 标志降级它可以双向工作,例如
pip install --upgrade numpy==1.10.1
Run Code Online (Sandbox Code Playgroud)
我怀疑您是否真的需要或想要降级 NumPy。
\n\n但这不是您问题的真正目的。您想知道为什么pip展示一件事而python展示另一件事,以及您可以对此做些什么。
你看到不同的东西的原因是你的pip不符合你的python。
当您运行 时python,这就是您的 Python 2.7,并且您的软件包import来自 2.7 库,位于/usr/local/lib/python2.7/。
当您运行pip它时,将使用 Python 3.4,并在 Python 3.4 的库(位于/usr/local/lib/python3.4/.
因此,pip show numpy我们向您展示 Python 3.4 所具有的 NumPy 版本,它完全独立于 Python 2.7 所具有的 NumPy 版本。
如果您不打算使用 Python 2.7,解决方案是运行 Python 3.4,通常只需使用python3代替python.
如果您确实打算使用 Python 2.7,解决方案是使用pip它附带的版本。您可能有一个名为pip2或pip2.7的命令,但最安全的方法是python -m pip使用pip.
附带说明一下,鉴于您的 3.4 NumPy 安装位置,看起来您可能已经做了类似apt-get python3-numpy或yum python-numpy类似的操作来安装它,而不是pip install numpy。可能还需要apt-get python2-numpy获得 2.7 版本。如果是这样,您可能需要按照最初安装的方式降级或升级它,使用发行版的包管理器,而不是使用pip. 如果不是\xe2\x80\xa6则忽略本段。
如果这一切看起来太复杂,但您确实需要同时拥有 Python 2.7 和 Python 3.4,那么您应该考虑两件事:
\n\npython并且pip都适用于该环境。| 归档时间: |
|
| 查看次数: |
14538 次 |
| 最近记录: |