前提・実現したいこと
ラズパイゼロでmatplotlib、numpyがインポート出来ません。
元々mtplotlibを使いたかったので、以下でインストールしました。
shell
1sudo apt install python3-matplotlib
しかし、発生している問題・エラーメッセージ
で示すエラーが発生したので、問題の同定の為import numpy
したところ、同じエラーが発生した為、この質問をしました。
最終的にはmatplotがインポート出来ることが目標ですが、ひとまずnumpyで出来るようにしたいです。(numpyが出来ればmatplotもインポート出来るようになると考えています。)
発生している問題・エラーメッセージ
shell
1>>> import numpy 2Traceback (most recent call last): 3 File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 40, in <module> 4 from . import multiarray 5 File "/usr/lib/python3/dist-packages/numpy/core/multiarray.py", line 12, in <module> 6 from . import overrides 7 File "/usr/lib/python3/dist-packages/numpy/core/overrides.py", line 6, in <module> 8 from numpy.core._multiarray_umath import ( 9ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' 10 11During handling of the above exception, another exception occurred: 12 13Traceback (most recent call last): 14 File "<stdin>", line 1, in <module> 15 File "/usr/lib/python3/dist-packages/numpy/__init__.py", line 142, in <module> 16 from . import core 17 File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 71, in <module> 18 raise ImportError(msg) 19ImportError: 20 21IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! 22 23Importing the multiarray numpy extension module failed. Most 24likely you are trying to import a failed build of numpy. 25Here is how to proceed: 26- If you're working with a numpy git repository, try `git clean -xdf` 27 (removes all files not under version control) and rebuild numpy. 28- If you are simply trying to use the numpy version that you have installed: 29 your installation is broken - please reinstall numpy. 30- If you have already reinstalled and that did not fix the problem, then: 31 1. Check that you are using the Python you expect (you're using /usr/local/bin/python3), 32 and that you have no directories in your PATH or PYTHONPATH that can 33 interfere with the Python and numpy versions you're trying to use. 34 2. If (1) looks fine, you can open a new issue at 35 https://github.com/numpy/numpy/issues. Please include details on: 36 - how you installed Python 37 - how you installed numpy 38 - your operating system 39 - whether or not you have multiple versions of Python installed 40 - if you built from source, your compiler versions and ideally a build log 41 42 Note: this error has many possible causes, so please don't comment on 43 an existing issue about this - open a new one instead. 44 45Original error was: No module named 'numpy.core._multiarray_umath' 46
試したこと
デフォルトのnumpyを使っているので上記エラーの↓の内容に従い、numpyを再インストールしました。
pip3で行うと非常に時間が掛かってしまうため、aptで行いました。
shell
1- If you are simply trying to use the numpy version that you have installed: 2 your installation is broken - please reinstall numpy.
shell
1$ sudo apt remove python3-numpy 2$ sudo apt install python3-numpy
しかしエラーの内容は発生している問題・エラーメッセージ
のものから変わりませんでした。
エラーの要因?
的外れかもしれませんが、エラーの原因と考えられるものを挙げておきます。
- 以下のリンクを参考にpython3のバージョンを変更しました。
Raspbian 上に 最新のPythonをインストールする
元のバージョン:Python 3.7.3
更新後:Python 3.8.10
- aptでデフォルトだとパスが通らないので以下のリンクを元にパスを通しました。
pipでモジュールを確かにインストールしたはずがModuleNotFoundErrorと出た時の解決法初心者的理解
試したこと
に書いたように、aptで行ったところ、ModuleNotFoundError
が発生したのでimportmodule.pthを作成し、pip3のインストール先に配置しました。これにより上記エラーに変わったのでこの作業自体は有効だったと思います。
aptのインストール先:/usr/lib/python3/dist-packages/
pip3のインストール先::/home/pi/.local/lib/python3.8/site-packages
shell
1$ cat importmodule.pth 2/usr/lib/python3/dist-packages
補足情報(FW/ツールのバージョンなど)
以下各バージョン情報です。
shell
1$ lsb_release -a 2No LSB modules are available. 3Distributor ID: Raspbian 4Description: Raspbian GNU/Linux 10 (buster) 5Release: 10 6Codename: buster 7 8$ python3 -V 9Python 3.8.10 10 11$ pip3 -V 12pip 21.3.1 from /home/pi/.local/lib/python3.8/site-packages/pip (python 3.8) 13 14$ pip3 list | grep numpy 15numpy 1.16.2 16
追記
インストール済のPythonのバージョンを指定して実行出来ることを知り、試しに元々の3.7で行ったところインポート出来ました。
shell
1$ python3.7 2Python 3.7.3 (default, Jan 22 2021, 20:04:44) 3[GCC 8.3.0] on linux 4Type "help", "copyright", "credits" or "license" for more information. 5>>> import numpy 6>>>
f文字などを使用する為3.8以降が良いですが、一応付け加えておきます。
追記2
Pythonを更にアップグレードしました。
Raspbian 上に 最新のPythonをインストールする
元のバージョン:Python 3.7.3
更新後:Python 3.8.10
更新後②:Python 3.9.2
これによりpip3でのインストールが滅茶苦茶早くなりました、教えてくださった方ありがとうございます。
しかし結果的には未だエラーが起きます…。(他の方法で試した後ですが、アンインストールしてから入れ直しています。)
shell
1 2$ python3 3Python 3.9.2 (default, Nov 22 2021, 17:56:10) 4[GCC 8.3.0] on linux 5Type "help", "copyright", "credits" or "license" for more information. 6>>> import numpy 7Traceback (most recent call last): 8 File "/usr/local/lib/python3.9/site-packages/numpy/core/__init__.py", line 22, in <module> 9 from . import multiarray 10 File "/usr/local/lib/python3.9/site-packages/numpy/core/multiarray.py", line 12, in <module> 11 from . import overrides 12 File "/usr/local/lib/python3.9/site-packages/numpy/core/overrides.py", line 7, in <module> 13 from numpy.core._multiarray_umath import ( 14ImportError: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-arm-linux-gnueabihf.so) 15 16During handling of the above exception, another exception occurred: 17 18Traceback (most recent call last): 19 File "<stdin>", line 1, in <module> 20 File "/usr/local/lib/python3.9/site-packages/numpy/__init__.py", line 150, in <module> 21 from . import core 22 File "/usr/local/lib/python3.9/site-packages/numpy/core/__init__.py", line 48, in <module> 23 raise ImportError(msg) 24ImportError: 25 26IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! 27 28Importing the numpy C-extensions failed. This error can happen for 29many reasons, often due to issues with your setup or how NumPy was 30installed. 31 32We have compiled some common reasons and troubleshooting tips at: 33 34 https://numpy.org/devdocs/user/troubleshooting-importerror.html 35 36Please note and check the following: 37 38 * The Python version is: Python3.9 from "/usr/local/bin/python3" 39 * The NumPy version is: "1.21.4" 40 41and make sure that they are the versions you expect. 42Please carefully study the documentation linked above for further help. 43 44Original error was: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-arm-linux-gnueabihf.so) 45 46>>> 47
何か足りない情報等あればコメントください。よろしくおねがいします。
回答2件
あなたの回答
tips
プレビュー