如何降级numpy?

新手上路,请多包涵

我有错误

TypeError: slice indices must be integers or None or have an __index__
method

并搜索了一个解决方案,发现我需要降级 numpy 的版本,然后尝试使用此命令

python
import numpy
numpy.__version__

并得到

>>> numpy.__version__
'1.14.5'

但是当我用

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:

现在 python 使用的版本是什么?

命令

$ python3 -m pip --version
$ pip --version
pip 18.0 from /usr/local/lib/python3.4/dist-packages/pip (python 3.4)

$ python -m pip --version
pip 18.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

原文由 user8163730 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.6k
1 个回答

您可能对 python2、python3 和不同的 python 虚拟环境 感到困惑。

在您的情况下,这是最可靠的来源

$ python
>>> import numpy
>>> numpy.__version__
'1.14.5'

要升级/降级 numpy,您需要使用 pip 对应于您正在使用的 python 。我认为您使用的是 python 2.7。四处寻找 pip 对应于安装包的可执行文件 /usr/local/lib/python2.7/dist-packages/pip

这不是“正确”的方式,但它会起作用

python -m pip install numpy==x.y.z

  • python 将只对应于您正在使用的python解释器
  • -m pip 将找到与您安装的 python 2.7 相对应的正确 pip
  • numpy==x.y.z 将强制降级

现在,您可能会遇到权限问题,这些问题会诱使您使用 sudo 。在这一点上,您可以尝试添加 --user 标志…但如果您真的必须使用 sudo,请考虑创建一个 virtualenv。 (请。)

可能是正确的做法

其他人对此发表评论:也许您的索引实际上不是整数。

(相关: 切片索引必须是整数或 None 或具有 index 方法

在您的代码中找到索引到列表中的位置,并确保它们实际上是整数。

 assert isinstance(a, int), 'a must be an int'
assert isinstance(b, int), 'b must be an int'
x = y[a:b]

继续添加这些类型断言,直到找到错误。

原文由 James Lim 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏