web-dev-qa-db-ja.com

numpyモジュールをIDLEにインポート/開く方法

実行しなければならないプログラムにnumpyを使用し、IDLE IDEで実行したい。 numpyバイナリをオンラインからインストールしましたが、「import numpy」を実行してからスクリプトでいくつかのnumpyコマンドを実行しようとすると、python Shellがエラーを返します

Traceback (most recent call last):
  File "/Users/Admin/Desktop/NumpyTest.py", line 1, in <module>
    import numpy as np
ImportError: No module named numpy

Pipを使用してnumpyをインストールしようとしましたが、pip install numpy bashシェルでは、

Requirement already satisfied (use --upgrade to upgrade):
numpy in ./anaconda/lib/python2.7/site-packages

Numpyディストリビューションを使用できるAnacondaをダウンロードしましたが、IDLEで実行したいと思います。

NumpyをIDLEで動作させるにはどうすればよいですか?どこかに保存する必要がありますか?

追伸OsX 10.10.5 Yosemiteを実行しています

7
SUPhys

タイトルは次の意味で誤解を招きます。モジュールをIDLEにインポートしたくありません。コードを実行しているpythonにインポートする必要があります。 IDLEを実行している場合、これは現在IDLEを実行しているpythonと同じです。実行中のpythonを見つけるには、最近のPythonのどこでも、直接またはIDEで次のコマンドを実行する必要があります。

import sys; print(sys.executable)

これをWindowsマシンのIDLEで実行すると、

C:\Programs\Python36\pythonw.exe

w接尾辞は、GUIプログラムを実行するためのWindows固有のバリアントバイナリですwithout空のコンソールウィンドウがポップアップします。省略する必要があります以下では。)

モジュールを特定のpythonにインポートするには、その特定のpython用にインストールする必要があります。それを行う最も簡単な方法は、コンソールでその特定のpythonでpipを実行することです。たとえば、上記の実行可能ファイルがある場合:

C:\Programs\Python36> python -m pip install numpy

* nixでは、python -m ensurepipを最初に実行して、そのPython用のpip自体をインストールする必要があるかもしれません。

import pip; pip.mainについて:pipは、初期化、1つの機能の実行、および終了を行うコマンドラインユーティリティとして設計されています。 main()は、意図的に文書化されていない内部実装の詳細です。 pipの作成者は、1回の呼び出しに続いてプログラムを終了するように設計されているため、その使用を推奨していません。内部データがインストールされたファイルと同期しなくなると、複数の呼び出しが正しく機能しなくなります。

15
Terry Jan Reedy

Anacondaの設定に影響を与えずにパッケージをインストールするには、 IDLE内からのpip を使用できます。

import pip
pip.main(["install","numpy"])

IDLEはリフレッシュレートで少し遅くなる可能性がありますが(少なくとも私のMacでは)、最後まで出力を非表示にすると速度が大幅に向上します:

import sys
import pip
import io

stdout_real = sys.stdout
sys.stdout = io.StringIO()
try:
    pip.main(["install","kfksnaf"])
finally:
    stdout_real.write(sys.stdout.getvalue())
    sys.stdout = stdout_real

これは、エラーテキストの後にすべての標準出力が表示されることを意味することに注意してください。

一方、anacondaはpython.orgからインストールされたpythonの多くの機能を指揮しているようです。マシンへの影響を減らすために、ご覧ください デフォルトPython)を使用 これはanacondaの機能を破壊する可能性があります。 。