【问题标题】:module 'numpy' has no attribute 'dtype'模块“numpy”没有属性“dtype”
【发布时间】:2019-08-02 04:23:28
【问题描述】:

当导入 sklearn 数据集时,例如。

from sklearn.datasets import fetch_mldata
from sklearn.datasets import fetch_openml

我得到了错误

Traceback (most recent call last):
  File "numbers.py", line 1, in <module>
    from sklearn.datasets import fetch_openml
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/sklearn/__init__.py", line 64, in <module>
    from .base import clone
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/sklearn/base.py", line 11, in <module>
    import numpy as np
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/numpy/__init__.py", line 142, in <module>
    from . import core
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/numpy/core/__init__.py", line 93, in <module>
    from . import numerictypes as nt
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/numpy/core/numerictypes.py", line 86, in <module>
    import numbers
  File "/Users/airocoop/repos/Numbers/numbers.py", line 1, in <module>
    from sklearn.datasets import fetch_openml
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/sklearn/datasets/__init__.py", line 6, in <module>
    from .base import load_breast_cancer
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/sklearn/datasets/base.py", line 20, in <module>
    from ..utils import Bunch
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/sklearn/utils/__init__.py", line 10, in <module>
    from scipy.sparse import issparse
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/scipy/__init__.py", line 72, in <module>
    from numpy.random import rand, randn
  File "/anaconda2/envs/numbers/lib/python3.5/site-packages/numpy/random/__init__.py", line 143, in <module>
    from .mtrand import *
  File "numpy.pxd", line 87, in init mtrand
AttributeError: module 'numpy' has no attribute 'dtype'

我不知道为什么会得到这个

从 jupyter notebook 运行东西时,我没有收到此错误,这也很奇怪。对此问题的任何帮助将不胜感激

【问题讨论】:

  • 好像你的 sklearn 和 numpy 版本不一致。
  • 如何,究竟这是在运行吗?
  • numbers 环境也有可能从 anaconda2 基础环境继承了不同版本的 numpy
  • @juanpa.arrivillaga 我在数字环境中从 mac OS 上的终端运行命令 $ python numbers.py。运行$ conda list 给了我(除其他外):{ numpy 1.16.2 py36hacdab7b_0 },{ numpy-base 1.16.2 py36h6575580_0},{ python 3.6.8 haf84260_0 },{ scikit-learn 0.20.2 py36h27c97d8_0}

标签: python numpy scikit-learn python-3.5 python-import


【解决方案1】:

我想通了。答案是我正在运行的文件名为 numbers.py。这搞砸了整个事情。如果您遇到此问题,请检查以确保目录中没有名为 numbers.py 的文件

检查的简单方法是将带有 import 语句的文件移动到不同的目录并尝试运行它。

【讨论】:

  • 我也遇到了这个问题,但在我的情况下,导致问题的文件称为“signal.py”。与其说“确保目录中没有名为 numbers.py 的文件”,不如说“检查最近添加的任何 .py 文件并尝试更改其名称”。当我遇到问题时,我多次阅读您的答案,但我没有太注意它,因为我没有任何名为“numbers.py”的文件......
【解决方案2】:

安装损坏。

这样做:

1)

conda install numpy=1.13

或 2)

pip install numpy --upgrade

【讨论】:

  • 如果 OP 不使用 pip 来管理这种特定的依赖关系怎么办?当试图在 Windows 上安装 numpy/scipy 时,pip 是出了名的问题,需要有人安装 fortran 编译器。我听说情况已经好很多了,但是很多人使用conda。请注意,OP 正在使用 /anaconda2/envs/numbers/lib/python3.5
  • 大家好,感谢您的回复。你的权利,我正在使用 conda,但尝试失败:$ conda remove -n numbers numpy$ conda install numpy(数字是我的环境)也尝试了 $ conda install numpy=1.13
猜你喜欢
  • 2021-12-01
  • 1970-01-01
  • 2017-09-20
  • 2018-10-22
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 2017-08-18
  • 2023-01-29
相关资源
最近更新 更多