質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.54%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3133閲覧

ラズパイゼロでnumpyのインポートが出来ません。

mayonnaize

総合スコア11

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/22 03:33

編集2021/11/22 15:08

前提・実現したいこと

ラズパイゼロで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

しかしエラーの内容は発生している問題・エラーメッセージのものから変わりませんでした。

エラーの要因?

的外れかもしれませんが、エラーの原因と考えられるものを挙げておきます。

  1. 以下のリンクを参考にpython3のバージョンを変更しました。

Raspbian 上に 最新のPythonをインストールする
元のバージョン:Python 3.7.3
更新後:Python 3.8.10

  1. 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

何か足りない情報等あればコメントください。よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/11/22 06:53 編集

> python3のバージョンを変更しました。 元のバージョン:Python 3.7.3 更新後:Python 3.8.10 質問者さんが使ってるラズパイのOSに同梱されてた3.7用のがaptでインストールされて、それを無理矢理3.8で使おうとしてるので、動かないのではないですかね aptは、質問者さんが追加で3.8を入れたことなんて関知しないので、3.8用のを入れてくれることは無いと思うのですけど もし、Python 3.8をaptでインストールできたなら、aptは今3.8が入ってるということを認識するので、numpyとかも3.8用のをaptが入れてくれると思いますが、そんなことできないからPython本体をソースをコンパイルして入れるのですよね
mayonnaize

2021/11/22 08:24

ありがとうございます。 3.9だとまた違うツールがあるのですね。3.9.2をインストールして試してみます。 失礼ですが、出来ればこちらの質問の修正依頼の方ではなく回答にしていただけると助かります。
jbpb0

2021/11/22 23:22

> /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found おそらく https://teratail.com/questions/222636 と同じ問題ですね Python 3.9用のwheelはBullseye用に作られてる https://blog.piwheels.org/python-3-9-wheels-for-bullseye/ ので、Bullseyeに同梱されてるバージョンのglibcが無いと動かないのだと思います Busterでglibcだけバージョンアップ https://stackoverflow.com/questions/66331923/cannot-install-libc6-ver-2-29-newer-on-debian-buster するのは、いろいろ副作用があって危険 https://raspberrypi.stackexchange.com/questions/119083/upgrading-libc-libc6-raspberry-pi-os-rasbian-buster なようなので、Bullseyeにアップグレード https://blog.jack-s.com/upgrade-bullseye/ https://sirius10.net/blog/wordpress/index.php/2021/08/31/1912/ https://hodalog.com/upgrade-os-version-of-raspberry-pi/ https://debikuro.hatenablog.com/entry/2021/08/28/064932 するか、SDカードにBullseyeを新規インストールするか、ですね Bullseyeにアップグレードしたら、たぶんPython 3.9も入ると思うので、自分でインストールした3.8, 3.9は要らなくなるでしょう あるいは、wheel使うのをあきらめて、numpyとかを自分で全部ソースからコンパイルするか、ですが、すごく時間がかかると思います
guest

回答2

1

ベストアンサー

/lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found

おそらく
RaspberryPi libc.so.6 が見つからない
と同じ問題です

Python 3.9を使う場合は、Bullseyeに移行することをお勧めします
Python 3.9 wheels for Bullseye

投稿2021/11/24 02:37

編集2021/11/24 02:43
jbpb0

総合スコア7649

mayonnaize👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mayonnaize

2021/11/28 03:34

色々教えていただきありがとうございました。 ですが、やはり上手くいかなかったので、OSのインストールからやり直すことにします。
jbpb0

2021/11/28 03:38

SDカードにBullseyeを新規インストールするのが、一番簡単で確実だと思います これまでの環境(OS)に自分で追加インストールしてきたものを、再度インストールする必要はありますが 今後もまたこういうことは起きると思うので、何をどのようにしてインストールしたのかを記録しておくことをお勧めします そうすれば、新OSでの環境構築が早く終わります (思い出しながらやると、たいてい何かやり忘れたり、手順間違えたりします)
guest

0

shell

1/usr/local/bin/python3 -m pip install numpy

でnumpyをインストールしてみてください。

投稿2021/11/22 04:22

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mayonnaize

2021/11/22 14:32

Pythonのバージョンを3.9.2にあげてしまったのであれですが、エラーの内容は変わりました。 ‘’’ $ python3 Python 3.9.2 (default, Nov 22 2021, 17:56:10) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import numpy Traceback (most recent call last): File "/home/pi/.local/lib/python3.9/site-packages/numpy/core/__init__.py", line 22, in <module> from . import multiarray File "/home/pi/.local/lib/python3.9/site-packages/numpy/core/multiarray.py", line 12, in <module> from . import overrides File "/home/pi/.local/lib/python3.9/site-packages/numpy/core/overrides.py", line 7, in <module> from numpy.core._multiarray_umath import ( ImportError: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /home/pi/.local/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-arm-linux-gnueabihf.so) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/pi/.local/lib/python3.9/site-packages/numpy/__init__.py", line 150, in <module> from . import core File "/home/pi/.local/lib/python3.9/site-packages/numpy/core/__init__.py", line 48, in <module> raise ImportError(msg) ImportError: IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! Importing the numpy C-extensions failed. This error can happen for many reasons, often due to issues with your setup or how NumPy was installed. We have compiled some common reasons and troubleshooting tips at: https://numpy.org/devdocs/user/troubleshooting-importerror.html Please note and check the following: * The Python version is: Python3.9 from "/usr/local/bin/python3" * The NumPy version is: "1.21.4" and make sure that they are the versions you expect. Please carefully study the documentation linked above for further help. Original error was: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.29' not found (required by /home/pi/.local/lib/python3.9/site-packages/numpy/core/_multiarray_umath.cpython-39-arm-linux-gnueabihf.so) ‘’’
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.54%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。