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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1681閲覧

pandasのインポートでエラーが出る

grandfleet

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/03/16 00:04

編集2023/03/16 00:26

pandasのインポートでエラーが出る

ーーー ソース ーーー
import pandas

pandasのインポートで、下記のエラーが出てしまいました。

ーーー エラーの内容 ーーー
runfile('/home/user/test.py', wdir='/home/user')
Traceback (most recent call last):

File "<ipython-input-2-30843483212b>", line 1, in <module>
runfile('/home/user/test.py', wdir='/home/user')

File "/usr/lib/python3/dist-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
execfile(filename, namespace)

File "/usr/lib/python3/dist-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "/home/user/test.py", line 10, in <module>
import pandas

File "/home/user/.local/lib/python3.8/site-packages/pandas/init.py", line 22, in <module>
from pandas.compat import is_numpy_dev as _is_numpy_dev # pyright: ignore # noqa:F401

File "/home/user/.local/lib/python3.8/site-packages/pandas/compat/init.py", line 17, in <module>
from pandas._typing import F

File "/home/user/.local/lib/python3.8/site-packages/pandas/_typing.py", line 133, in <module>
np.random.BitGenerator,

AttributeError: module 'numpy.random' has no attribute 'BitGenerator'

(numpyの状況)
pip show numpy
Name: numpy
Version: 1.17.4
Summary: NumPy is the fundamental package for array computing with Python.
Home-page: https://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email: None
License: BSD
Location: /usr/lib/python3/dist-packages
Requires:
Required-by: seaborn, scipy, pandas
Note: you may need to restart the kernel to use updated packages.

(pandasの状況)
pip show pandas
Name: pandas
Version: 1.5.3
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
Author: The Pandas Development Team
Author-email: pandas-dev@python.org
License: BSD-3-Clause
Location: /home/user/.local/lib/python3.8/site-packages
Requires: python-dateutil, numpy, pytz
Required-by: seaborn
Note: you may need to restart the kernel to use updated packages.

numpyのLocationは「/usr/lib/python3/dist-packages」
pandasのそれは、「/home/user/.local/lib/python3.8/site-packages」
と違ったディレクトリにあるのが問題かな?とも予想したのですが、どうやって変えたらいいのかもも分からず...

numpyもしくはpandasのバージョンの相性が悪いのか...などとも考えていますが、どう対処してよいか分からず...

Python初心者です。どなたかご教授くださいませ。

OS:Ubuntu20.04LTS
Spyder3(anacondaではなく単体) でも 端末からの実行でも出てしまいます。

ーーー 試したこと ーーー
stackoverflowでは下記で対応できたとの回答が見つかったので、試してみました
pip install --upgrade numpy

一部エラーがでたもののうまくいった?感じです。
(実行結果)
Collecting numpy
Using cached numpy-1.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
ERROR: scipy 1.7.1 has requirement numpy<1.23.0,>=1.16.5, but you'll have numpy 1.24.2 which is incompatible.
ERROR: pandas 1.5.3 has requirement python-dateutil>=2.8.1, but you'll have python-dateutil 2.7.3 which is incompatible.
ERROR: pandas 1.5.3 has requirement pytz>=2020.1, but you'll have pytz 2019.3 which is incompatible.
Installing collected packages: numpy
Successfully installed numpy-1.24.2
Note: you may need to restart the kernel to use updated packages.

しかしながら、やはりimport pandasで同じエラーが出てしまいまして
結果的に変わらずでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

pandasが最新なのに、numpyがかなり古いようなので、まずはnumpyをアップグレードしてみてはどうでしょうか。

投稿2023/03/16 01:46

TakaiY

総合スコア12779

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

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

grandfleet

2023/03/16 03:48

numpyはバージョンが古いのですね。 重要なヒントを頂きありがとうございます。 早速トライしてみたのですが... (アップグレードのトライ) pip install --upgrade numpy Collecting numpy Using cached numpy-1.24.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB) ERROR: scipy 1.7.1 has requirement numpy<1.23.0,>=1.16.5, but you'll have numpy 1.24.2 which is incompatible. ERROR: pandas 1.5.3 has requirement python-dateutil>=2.8.1, but you'll have python-dateutil 2.7.3 which is incompatible. ERROR: pandas 1.5.3 has requirement pytz>=2020.1, but you'll have pytz 2019.3 which is incompatible. Installing collected packages: numpy Successfully installed numpy-1.24.2 Note: you may need to restart the kernel to use updated packages. 「Successfully installed numpy-1.24.2」とでているので、アップグレードに成功したと思いきや $pip show numpy で調べてみると、古いバージョンのまま変わっておらず... Name: numpy Version: 1.17.4 アップグレード時のメッセージにエラーがでていたのが問題か? 今度は再インストールを試みました。 (アンインストール後に再インストールの試み) まずは、アンインストールを試みましたが、エラーでできませんでした... $pip uninstall numpy Found existing installation: numpy 1.17.4 Not uninstalling numpy at /usr/lib/python3/dist-packages, outside environment /usr Can't uninstall 'numpy'. No files were found to uninstall. ※もしかしたら現在入っているnumpyがpip以外でインストールしていたとしたら、今回のpipでアップグレードとかアンインストールができないのでは?と思いました。 しかし、パッケージを入れる方法としてpipしか知らず、どうしたらよいものか...と素人の憶測ですみません。
TakaiY

2023/03/16 04:36

pythonの環境は仮想環境でしょうか? であれば、その仮想環境全体を作りなおすのがいいのではないかと思います。 そうでなく、インストールしているものに直接だとすると、エラーメッセージで出ているパッケージを個別にアップデートしてみるしかないように思います。 インストールされているscipy 1.7.1 は numpy<1.23.0,>=1.16.5 が条件だが、 1.24.2 を入れようとしている。 ERROR: scipy 1.7.1 has requirement numpy<1.23.0,>=1.16.5, but you'll have numpy 1.24.2 which is incompatible. pandas 1.5.3 は python-dateutil>=2.8.1 を要求しているが、 2.7.3 が入っている。 ERROR: pandas 1.5.3 has requirement python-dateutil>=2.8.1, but you'll have python-dateutil 2.7.3 which is incompatible. とりあえずはこのあたり。 scipyに合せて numpyをちょっと前のものにしてみるという手もありますね。
grandfleet

2023/03/16 04:47

ほんとうにお早いご回答を頂きまして、ありがとうございます。 ・scipyに合せて numpyをちょっと前のものに... ・エラーメッセージで出ているパッケージを個別にアップデート ・環境全体を作りなおす 対策の道しるべをつけていただきありがとうございました。 ちゃんとエラーメッセージも翻訳などして読みこまないといけないとあらためて考えさせられました。 このことも踏まえてコツコツ取り組んでみようと思います!
grandfleet

2023/03/16 11:35

[追伸] いままで使っていなかったAnaconda環境をいったん削除、新たに再インストールして、その後、うまくスクリプト全体が実行できました。 環境に目を向けることができたのも、TakaiYさんいわく「pythonの環境は仮想環境でしょうか? であれば、その仮想環境全体を作りなおすのがいいのではないかと思います。」とのコメントがきっかけです。 本当に感謝いたします。
TakaiY

2023/03/16 11:46 編集

pythonのプログラムはいろいろなモジュールをインストールして使うことが多いですが、複数のプロジェクトを扱っていると、AではモジュールバージョンXなのに、BではモジュールバージョンYが必要などと衝突することが増えてきます。 なので、個人で開発している場合でも、venvなどを使ってプロジェクトごとに専用の仮想環境を作って使うようにすると質問のような状況になりにくくなると思いますよ。
grandfleet

2023/03/16 12:09

おっしゃるとおりでした。 振り返れば成り行きまかせでモジュールを(たいして考えもせず)いろいろな環境からインストールしておりました。しまいにごちゃごちゃでバージョン以前になんのモジュールがどの環境にあるのすら分からなくなってしまったのも当たり前でした... 「プロジェクトごとに専用の仮想環境をつくる」という方法ですと今回のような事態を回避できそうですね。 初心者に大変ためになるアドバイスをいただきありがとうございました。重ねて感謝申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問