[Windows]PythonのpandasでImportError: DLL load failed while importing aggregations: 指定されたモジュールが見つかりません。

- Python -
2020.08.13
Python[パイソン]

【結論】
pip uninstall pandas
→ pandas-1.0.X をアンインストール

pip install pandas==1.0.1
→ pandas-1.0.1 でバージョン指定して再インストール

これで解決しました。

以下、僕が直面した事象を書いていきます。

Python pandasでインポートエラー:指定されたモジュールが見つかりません の経緯と解決まで

エラーが発生した時の状況

まず、Windows7端末でPython開発環境を整えようとhttps://www.python.org/downloads/ からPython 3.8.3をダウンロード、インストールしました。

pandasインポートエラー

その後、コマンドプロンプトでpip install pandasを実行しpandasをインストール。

以下インストールログを見ると、バージョン1.0.1以外(この場合は1.0.5)がインストールされていることがわかります(このバージョンが今回の原因)。

C:\Users\me> pip install pandas
Collecting pandas
Downloading https://files.pythonhosted.org/packages/0d/3b/c306fc4c669f9208ba5a62d29a71fcb5df3be80a914da9e7b30ad682589f/pandas-1.0.5-cp38-cp38-win32.whl (7.6MB)
|████████████████████████████████| 7.6MB 243kB/s
Collecting numpy>=1.13.3 (from pandas)
Downloading https://files.pythonhosted.org/packages/36/f3/d38f163624f01914e19868d15ac5fc7a612fcfbb30fd1ecb20d686551afa/numpy-1.19.0-cp38-cp38-win32.whl (10.9MB)
|████████████████████████████████| 11.0MB 1.7MB/s
Collecting python-dateutil>=2.6.1 (from pandas)
Downloading https://files.pythonhosted.org/packages/d4/70/d60450c3dd48ef87586924207ae8907090de0b306af2bce5d134d78615cb/python_dateutil-2.8.1-py2.py3-none-any.whl (227kB)
|████████████████████████████████| 235kB 1.1MB/s
Collecting pytz>=2017.2 (from pandas)
Downloading https://files.pythonhosted.org/packages/4f/a4/879454d49688e2fad93e59d7d4efda580b783c745fd2ec2a3adf87b0808d/pytz-2020.1-py2.py3-none-any.whl (510kB)
|████████████████████████████████| 512kB 1.1MB/s
Collecting six>=1.5 (from python-dateutil>=2.6.1->pandas)
Downloading https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl
Installing collected packages: numpy, six, python-dateutil, pytz, pandas
Successfully installed numpy-1.19.0 pandas-1.0.5 python-dateutil-2.8.1 pytz-2020.1 six-1.15.0

C:\Users\me>

インストール自体は正常に完了。

app.pyファイル冒頭でimport pandas as pdとしたプログラムを実行。ちなみに、pandasはCSVを読み込み操作するために使っていました。

すると以下赤字にあるとおり、import pandas部分でエラーになってしまうという事象が発生。

C:\Users\me\Downloads> python app.py
Traceback (most recent call last):
File "app.py", line 6, in <module>
import pandas as pd
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\__init__.py", line 55, in <module>
from pandas.core.api import (
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\api.py", line 29, in <module>
from pandas.core.groupby import Grouper, NamedAgg
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\groupby\__init__.py", line 1, in <module>
from pandas.core.groupby.generic import DataFrameGroupBy, NamedAgg, SeriesGroupBy
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\groupby\generic.py", line 60, in <module>
from pandas.core.frame import DataFrame
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\frame.py", line 124, in <module>
from pandas.core.series import Series
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\series.py", line 4572, in <module>
Series._add_series_or_dataframe_operations()
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\generic.py", line 10349, in _add_series_or_dataframe_operations from pandas.core.window import EWM, Expanding, Rolling, Window
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\window\__init__.py", line 1, in <module>
from pandas.core.window.ewm import EWM # noqa:F401
File "C:\Users\me\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\window\ewm.py", line 5, in <module>
import pandas._libs.window.aggregations as window_aggregations
ImportError: DLL load failed while importing aggregations: 指定されたモジュールが見つかりません。

C:\Users\me\Downloads>

はて、pip install pandasは成功したのに何がいけないのか...?

pandas importエラー解決

調べてみると、stackoverflowにこんな回答が。

I was facing the same problem. I am using python 3.7.5. By default pip install pandas command install version 1.0.3. So i revert to version 1.0.1.

pip uninstall pandas
pip install pandas==1.0.1

Now it is working without error. You may try it.

pandasのバージョンに問題ありらしく、pandasバージョン1.0.1がimportエラーなく動作するバージョンのようです。

メモ:

pip freezeで現環境にインストールされているpandasのバージョンが確認できます。

というわけでさっそくpip uninstall pandasで先ほど入ったバージョン1.0.5のpandasをアンインストールしました。

C:\Users\me\Downloads> pip uninstall pandas
Uninstalling pandas-1.0.5:
Would remove:
c:\users\me\appdata\local\programs\python\python38-32\lib\site-packages\pandas-1.0.5.dist-info\*
c:\users\me\appdata\local\programs\python\python38-32\lib\site-packages\pandas\*
Proceed (y/n)? y
Successfully uninstalled pandas-1.0.5

C:\Users\me\Downloads>

Successfuly uninstallされたことを確認し、pip install pandas==1.0.1でバージョン指定付きインストールをしました。

C:\Users\me\Downloads> pip install pandas==1.0.1
Collecting pandas==1.0.1
Downloading https://files.pythonhosted.org/packages/d9/02/efd55383399646d0bc3bf0078130ae08f2890dd68276e3f4d7a4e94539a4/pandas-1.0.1-cp38-cp38-win32.whl (7.8MB)
|████████████████████████████████| 7.8MB 3.3MB/s
Requirement already satisfied: pytz>=2017.2 in c:\users\me\appdata\local\programs\python\python38-32\lib\site-packages (from pandas==1.0.1) (2020.1)
Requirement already satisfied: python-dateutil>=2.6.1 in c:\users\me\appdata\local\programs\python\python38-32\lib\site-packages (from pandas==1.0.1) (2.8.1)

Requirement already satisfied: numpy>=1.13.3 in c:\users\me\appdata\local\programs\python\python38-32\lib\site-packages (from pandas==1.0.1) (1.19.0)
Requirement already satisfied: six>=1.5 in c:\users\me\appdata\local\programs\python\python38-32\lib\site-packages (from python-dateutil>=2.6.1->pandas==1.0.1) (1.15.0)
Installing collected packages: pandas
Successfully installed pandas-1.0.1

C:\Users\me\Downloads>

最後、ver1.0.1のpandasがSuccessfully installedされたことを確認し、プログラム実行するとインポートエラーが出ることなく完了。

僕の場合、これで解決です。

↑TOP