くだらない理由でAttributeError: module ‘numpy’ has no attribute ‘core’

開発

ゼロから作るDeep Learningで二次関数を出力する簡単なサンプル。

import numpy as np
import matplotlib.pylab as plt


def function_1(x):
    return 0.01 * x ** 2 + 0.1 * x


x = np.arange(0.0, 20.0, 0.1)
y = function_1(x)
plt.xlabel("x")
plt.ylabel("y")
plt.plot(x, y)
plt.show()

実行するとこのようなエラーが発生してしまいました。

Traceback (most recent call last):
  File "C:\Users\Tono\Documents\Python\DeepLearningFromZero\numbers.py", line 1, in 
    import numpy as np
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\__init__.py", line 180, in 
    from . import add_newdocs
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\add_newdocs.py", line 13, in 
    from numpy.lib import add_newdoc
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\lib\__init__.py", line 8, in 
    from .type_check import *
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\lib\type_check.py", line 11, in 
    import numpy.core.numeric as _nx
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\core\__init__.py", line 22, in 
    from . import _internal  # for freeze programs
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\core\_internal.py", line 15, in 
    from .numerictypes import object_
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\core\numerictypes.py", line 87, in 
    import numbers
  File "C:\Users\Tono\Documents\Python\DeepLearningFromZero\numbers.py", line 2, in 
    import matplotlib.pylab as plt
  File "C:\Users\Tono\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 122, in 
    from matplotlib.cbook import is_string_like, mplDeprecation, dedent, get_label
  File "C:\Users\Tono\Anaconda3\lib\site-packages\matplotlib\cbook.py", line 34, in 
    import numpy.ma as ma
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\ma\__init__.py", line 44, in 
    from . import core
  File "C:\Users\Tono\Anaconda3\lib\site-packages\numpy\ma\core.py", line 30, in 
    import numpy.core.umath as umath
AttributeError: module 'numpy' has no attribute 'core' 

しかしIntelliJで実行すると起きるけど、コンソールで入れていくと起きないんです。

IntelliJがバグってるんじゃないかと色々探ってしまいましたが、
Tracebackをよく見てみれば一目瞭然。

モジュール名につけたnumbers.pyという名前が被っていたというだけでした。

モジュール名を変更したら普通に動きました。
名前は適当につけるにしても他のところで使われていなさそうなものを選ばないといけないですね。

コメント

タイトルとURLをコピーしました