Python

Pythonでpandasを実行しようとするとエラーになった場合の対応【fails to pass a sanity check due to a bug in the windows runtime】

Python

Pythonでデータ解析する際に必須といえるライブラリはpandasとnumpyです。

特に、様々なデータフォーマットに対応できる「DataStream」という概念でいろいろな形にすることができる機能は超絶に便利です。

今回久しぶりにWindowsでpandasでjsonの操作をしようかなと思っていたらエラーに遭遇したので対応方法についてメモします。参考になれば幸いです。

エラーが起こった時のメッセージ

まず、今回試すpandasを利用したスクリプトの例になります。

import pandas

s = '{"col1":{"row1":1,"row2":2,"row3":3},"col2":{"row1":"a","row2":"x","row3":"\u3042"}}'
df_s = pandas.read_json(s)
print(df_s)

pipからpamdasをインストールします。そうするとpandasだけではなくnumpyも合わせてインストールされます。

C:\Python\TestProject>pip install pandas
Collecting pandas
  Downloading pandas-1.1.5-cp38-cp38-win_amd64.whl (9.0 MB)
     |████████████████████████████████| 9.0 MB 6.4 MB/s
Requirement already satisfied: pytz>=2017.2 in c:\users\user\appdata\local\programs\python\python38\lib\site-packages (from pandas) (2020.1)
Collecting numpy>=1.15.4
  Using cached numpy-1.19.4-cp38-cp38-win_amd64.whl (13.0 MB)
Requirement already satisfied: python-dateutil>=2.7.3 in c:\users\user\appdata\local\programs\python\python38\lib\site-packages (from pandas) (2.8.1)
Requirement already satisfied: six>=1.5 in c:\users\user\appdata\roaming\python\python38\site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)
Installing collected packages: numpy, pandas
Successfully installed numpy-1.19.4 pandas-1.1.5

で、先ほどのサンプルプログラムを実行するとエラーになります。

C:\Users\User\AppData\Local\Programs\Python\Python38\python.exe C:/Python/TestProject/pandas_json.py
Traceback (most recent call last):
  File "C:/Python/TestProject/pandas_json.py", line 1, in <module>
    import pandas
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\__init__.py", line 11, in <module>
    __import__(dependency)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\__init__.py", line 305, in <module>
    _win_os_check()
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\__init__.py", line 302, in _win_os_check
    raise RuntimeError(msg.format(__file__)) from None
RuntimeError: The current Numpy installation ('C:\\Users\\User\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages\\numpy\\__init__.py') fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com/y3dm3h86

対応方法

調べるとWindowsに発生して、numpyのバージョンが新しい(1.19.4)のが原因のようです。

対応としてはいったん新しいnumpyをuninstallしてから1.19.3バージョンのnumpyをインストールすればよいみたいです。

> pip uninstall numpy
> pip install numpy==1.19.3

こちらのMSのサイトにも情報ありましたね。

Developer Community
Developer Community

今回は以上となります。

コメント