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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

Q&A

1回答

1673閲覧

import numpy が機能しない

Takashi_naru

総合スコア1

NumPy

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

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

0グッド

1クリップ

投稿2021/05/07 07:27

前提・実現したいこと

Python初心者です。numpyのモジュールで遊びたいのですが、importがうまくできません。
インストールはできているようです。

$ pip show numpy→ Location: /Users/○/opt/anaconda3/lib/python3.8/site-packages

使用を試みたのはIDLEとVScodeです。
VScodeにてnumpyを動かすためにはどうすれば良いのでしょうか。
VScodeで$ pip install numpy を行うと、

equirement already satisfied: numpy in ./opt/anaconda3/lib/python3.8/site-packages (1.19.2)

と表示されるだけで、途方に暮れています。

試したこと

使用している環境が違うから、インストールされている場所が違うから、という検索結果が散見されましたが、仮想環境というもの自体への理解がいまひとつ足りていないので、併せてお教えいただければと思います。よろしくお願いします。

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

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

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

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

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

meg_

2021/05/07 09:10 編集

Pythonのバージョンは何でしょうか?またそのPythonはどうやってインストールしましたか? ⇒ 失礼しました。Anacondaの3.8ですね。
meg_

2021/05/07 09:12

> importがうまくできません。 エラーメッセージを掲載されると分かりやすいかと思います。
jbpb0

2021/05/07 09:32

pythonで import numpy がうまくいかない状態で、下記のpythonコードを実行してください import sys import pprint pprint.pprint(sys.path) その結果たくさんパスが表示されますが、その中に下記が入ってますでしょうか? > Location: /Users/○/opt/anaconda3/lib/python3.8/site-packages
退会済みユーザー

退会済みユーザー

2021/05/07 11:55

VSCodeでどのように実行しているのかも教えてください。
guest

回答1

0

仮想環境というもの自体への理解がいまひとつ足りていないので、併せてお教えいただければと思います。

というご質問への回答です。

Pythonは変化がはやい

Pythonは年に一回ぐらい大きなバージョンアップがあります。たとえば、Python 3.8.0は2019年10月14日にリリースされ、Python 3.9.0は2020年10月5日にリリースされました。
Pythonは2月に一回ぐらい小さなバージョンアップがあります。たとえば、Python3.9.4は2021年4月2日にリリースされ、Python3.9.5は2021年5月3日にリリースされました。

Python2とPython3

Python3をPython2の後継として開発されたのかもしれませんが、Python2との互換性はありません。2to3というモジュールがあってPython2用のコードをPython3用に変換できることになっていますが、あまり役に立ちません。Python2とPython3は別の言語だと考えておいた方が良いでしょう。
Python2は2020年4月20日以降アップデートが停止していますので、今Pythonのアプリを開発するならPython3を使いましょう。
ただし、Python2はOSの機能を実現していたりするのでOSに入っているPython2は決して削除しないでください。

ライブラリはPythonの変化に完全には追従できない

そしてPythonには山のようにライブラリ(NumPyとかSciPyとかTensorFlowとか)があります。ライブラリが全てのバージョンのPythonに対応するのには時間とコストがかかるので、対応できるバージョンが限られていることはよくあります。
その結果、あのライブラリを使いたければPython3.7以上でなければならない、このバージョンを使いたければPython3.4以上3.6いかでなければならない、なんていうことは良く起こります。(同じバージョンのPythonの上で複数バージョンの同じライブラリを使いたいという話もありますが複雑になるので割愛します)

Pythonのライブラリは個々のPythonに入れなければならない

Pythonのライブラリのバージョンは相互に依存関係があります。例えばScipyのこのバージョンを使うにはNumpyはこういう範囲のバージョンでなければならない、というような話です。それやこれやの理由で、Pythonの処理系はそれぞれにライブラリを持っています。そして複数のPythonがライブラリを共用することはできません。無理にやれば出来る場合もありますが、たいていは次のアップデートで破綻します。

ユーザは多くのPythonをインストールする。

その結果、各ユーザのストレージには複数のバージョンのPythonがインストールされ、インストールパスを切り替えたりして使うのが大変になりました。

仮想環境とは

この問題への対応として複数のPythonのバージョンを切り替える機能を実現するコマンドなどが開発されました。そういう機能のことを仮想環境と呼んでいるようです。conda、pyenvなどです。
Pythonのモジュールであるvenvというのもありますが、これはPythonのモジュールですのでPythonのバージョンを切り替えることは多分できないのだと思います。つまり、割愛した「同じバージョンのPythonの上で複数バージョンの同じライブラリを使いたい」の対応するための機能なのでしょう。
仮想環境は原則として仮想環境の中でインストールしたPythonを切り替えます。従って仮想環境の外でインストールしたPythonのことは関知しません。

仮想環境がさらに問題を複雑化する

Pythonのバージョンを確認して同じなのにインストールしたモジュールをimportできないという質問がときどきあります。しかし、一台のコンピュータの中に同じバージョンのPythonが複数インストールされていることも良くあります。それぞれの仮想環境はその中でバージョンを管理していますので、仮想環境の外に全く同じバージョンのPythonがインストールされていることもあります。
この場合、Pythonのバージョンは同じだけれども、インストールされているモジュールは違っているということも起こります。

どうすればいいのか

仮想環境を一つ決めて、(OS同梱のPythonを除く)それ以外のPythonを全て削除するのも一つの方法です。

あるいは、どこにあるPythonが動いているかを常に確認しておくのも一つの方法です。
確認するためには以下を実行しましょう。

python

1import sys 2print(sys.executable)

投稿2021/05/07 12:08

ppaul

総合スコア24670

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問