今日コンピューターを更新しましたが、パンダをインポートしようとすると次のエラーメッセージが表示されます。
import pandas as pd
AttributeError: module 'numpy' has no attribute '__version__'
私は次のリンクから提案を試みました:
Numpyパッケージ以外にnumpy.pyというファイル名はありません。
私はwindows 10内でanaconda2を実行しており、python 3.5仮想環境を作成しました。
完全なエラーメッセージは次のとおりです。
Python 3.5.5 | packaged by conda-forge | (default, Apr 6 2018, 16:03:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\j267156\AppData\Local\Continuum\anaconda2\envs\sf35\lib\site-packages\pandas\__init__.py", line 23, in <module>
from pandas.compat.numpy import *
File "C:\Users\j267156\AppData\Local\Continuum\anaconda2\envs\sf35\lib\site-packages\pandas\compat\numpy\__init__.py", line 10, in <module>
_np_version = np.__version__
AttributeError: module 'numpy' has no attribute '__version__'
編集:次のコマンドを実行するとエラーが発生します
import numpy
print(numpy.__file__)
AttributeError: module 'numpy' has no attribute '__file__'
print(numpy.version.version)
AttributeError: module 'numpy' has no attribute 'version'
Edit2:次のコマンドを実行すると、次のエラーが表示されます。
import numpy as np
np.zeros(5)
#AttributeError: module 'numpy' has no attribute 'zeros'
vars(np).keys()
#dict_keys(['__name__', '__package__', '__spec__', '__loader__', '__doc__', '__path__'])
Edit3:次のコマンドにより、次の出力が得られます。
import numpy as np
In [7]: np.__path__
Out[7]: _NamespacePath(['C:\\Users\\j267156\\AppData\\Local\\Continuum\\anaconda2\\envs\\sf35\\lib\\site-packages\\numpy'])
In [8]: np.__loader__
Out[8]: <_frozen_importlib_external._NamespaceLoader at 0x2033a3c8080>
Jupyterノートブックでは、最初に!pip uninstall numpyを使用して既存のnumpyをアンインストールします。
それをインストールします!pip install numpy。カーネルを再起動します(Python Notebook)。それが動作します。
Condaがnumpyを1.13.3から1.14.3に更新することを選択した後にこの問題が発生しました。 http://blog.rtwilson.com/conda-revisions-letting-you-rollback-to-a-previous-version-of-your-environment/ の手順を介してnumpyを元に戻し、機能を回復するために十分です、続いて環境内のバージョンを固定します。
プログラム/スクリプトに「numpy」という名前を付けた可能性があります。それに、プログラムの名前を変更して、それが機能することもありました。モジュールに似たプログラムに名前を付けると、インポート属性がプログラムとモジュールの間で衝突するために起こります