【5分で解決】RuntimeError: Numpy is not availableのエラー

【5分で解決】RuntimeError: Numpy is not availableのエラー

 

【悩み】
・Pythonのプログラムを実行したけど異常終了して動かない。
・RuntimeError: Numpy is not availableというエラーが出力されたけど何?
・RuntimeError: Numpy is not availableの原因と解消方法を知りたい。



こういった「悩み」に答えます。
 

【本記事の内容】
① RuntimeError: Numpy is not availableの発生経緯
➁ RuntimeError: Numpy is not availableの発生原因
➂ RuntimeError: Numpy is not availableの解決方法



本記事を実践したことで、5分くらいで「RuntimeError: Numpy is not available」のエラーを解決できました。
 

記事の前半では「本エラーの発生経緯」を解説します。

記事の後半では「本エラーの発生原因」から「解決方法」までを紹介します。
 

この記事を読み終えることで、「エラーで動かないPythonプログラムを解消でき、正常に動く状態」になるはずです。

 

RuntimeError: Numpy is not availableの発生経緯


「RuntimeError: Numpy is not availableの発生経緯」に関して解説します。
 

本事象が発生した当時は、「Ubuntuでは同じプログラムが正常終了するのに、なぜWindowsでは正常終了しないの?」と慌てふためいた記憶があります。



筆者は、以下のようなPythonプログラムをWindows上で実行しようと考えていました。

import spacy
import ginza
nlp = spacy.load('ja_ginza')
doc = nlp('ここは公園です。')

# 文節ごとに分割
for sent in doc.sents:
    for span in ginza.bunsetu_spans(sent):
        print(span)



上記プログラムを「test.py」というファイル名で保存します。

保存したファイルを実行するために、以下のコマンドを実行したところ、「RuntimeError: Numpy is not available」が発生しました。

python test.py
C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\thinc\shims\pytorch_grad_scaler.py:58: UserWarning: Failed to initialize NumPy: module compiled against API version 0x10 but this version of numpy is 0xe (Triggered internally at ..\torch\csrc\utils\tensor_numpy.cpp:77.)
  self._found_inf = torch.full((1,), 0.0)
Traceback (most recent call last):
  File "C:\Users\user\Dropbox\設定方法\2ch5ch\program\src\collect\get-2ch5ch.py", line 114, in <module>
    koyumeishi_dict = extract_koyumeishi_and_aggr(message_dict)
  File "C:\Users\user\Dropbox\設定方法\2ch5ch\program\src\collect\get-2ch5ch.py", line 21, in extract_koyumeishi_and_aggr
    doc = nlp(message_text)
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\spacy\language.py", line 1022, in __call__
    error_handler(name, proc, [doc], e)
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\spacy\util.py", line 1617, in raise_error
    raise e
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\spacy\language.py", line 1017, in __call__
    doc = proc(doc, **component_cfg.get(name, {}))  # type: ignore[call-arg]
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\spacy_transformers\pipeline_component.py", line 192, in __call__
    outputs = self.predict([doc])
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\spacy_transformers\pipeline_component.py", line 228, in predict
    activations = self.model.predict(docs)
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\thinc\model.py", line 315, in predict
    return self._func(self, X, is_train=False)[0]
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\spacy_transformers\layers\transformer_model.py", line 185, in forward
    model_output, bp_tensors = transformer(wordpieces, is_train)
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\thinc\model.py", line 291, in __call__
    return self._func(self, X, is_train=is_train)
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\thinc\layers\pytorchwrapper.py", line 133, in forward
    Xtorch, get_dX = convert_inputs(model, X, is_train)
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\spacy_transformers\layers\transformer_model.py", line 214, in _convert_transformer_inputs
    "input_ids": xp2torch(wps.input_ids).long().to(device=hf_device),
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\thinc\util.py", line 364, in xp2torch
    torch_tensor = torch.from_numpy(xp_tensor)
RuntimeError: Numpy is not available


 

本事象は、以下の日時と環境で発生しました。
動作確認済み日時:2022年12月27日
動作確認済み環境:Windows 11 pro



以上が、「RuntimeError: Numpy is not availableの発生経緯」となります。
 

RuntimeError: Numpy is not availableの発生原因


本事象の「発生原因」に関して解説します。
 

発生原因は、「お使いの環境に導入されているNumpyのバージョンとあるライブラリが期待するNumpyのバージョンが不一致だから」です。



本事象の詳しい発生原因を以下に掲載します。
 

【発生原因】
エラーの意味:
 「Numpyライブラリを使うことができません」です。
エラー箇所:
 doc = nlp()部分でNumpyを使うが使うことができないためエラーが発生
原因:
 プログラム実行時に以下の警告文が出力されています。
  UserWarning: Failed to initialize NumPy: module compiled against API
  version 0x10 but this version of numpy is 0xe (Triggered internally
 上の警告からNumpyのバージョン不整合でエラー発生と考えられます。



以上が、「RuntimeError: Numpy is not availableの発生原因」となります。
 

最後に出力されるエラーだけでなく、たびたび出力される警告文を確認することで本エラーを瞬時に理解することができます。


 

RuntimeError: Numpy is not availableの解決方法


本エラーの解決方法に関してご紹介します。
 

Numpyのバージョンを「上げる」もしくは「下げる」ことで本エラーを解決できます。



今回、プログラム内で使ったライブラリでは、「0xeのNumpy」が必要でした。しかし、環境内には「0x10のNumpy」がインストールされていました。
 

よって、以下のコマンドを実行し、Numpyをアップグレードすることで本事象を解消できます。

・アップグレードが必要な場合
pip install numpy --upgrade

・ダウングレードが必要な場合
pip uninstall numpy
pip install numpy==バージョン


以上のようにして、本事象を解消することができました。
 

【まとめ】RuntimeError: Numpy is not availableのエラー

【まとめ】pyocr.get_available_toolsのlist index out of range


いかがでしたでしょうか?

上記で紹介した「Numpyのバージョンをそろえる」ことで、「RuntimeError: Numpy is not availableのエラー」を解消できます。

最後にもう一度内容を確認しましょう。
 

【RuntimeError: Numpy is not availableのエラーの原因と解決方法】
・原因
 Numpyのバージョンが不一致であるため
・解決方法は2つ
 1つ目:Numpyのバージョンをアップグレードする
 2つ目:Numpyのバージョンをダウングレードする



本ブログでは、「業務の時短化に繋がるIT技術」や「クラウドやOSSの学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。

>> IT技術やその学び方を発信しているサイト「駆け出し物語」(本ブログ)
 

コメント

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