12

これは、インストールの初心者向けのpython質問です。パッケージをインストールして呼び出すのはこれが初めてです。pipインストールしました。2つのモジュールをインストールしようとしました-numpypandas

ターミナルで、次のコマンドを実行しました。

sudo pip install numpy

sudo pip install pandas

両方のコマンドが成功メッセージとともに返されました。これがpandas成功メッセージです(これは私がインストールした2番目のパッケージであり、まだ端末の履歴に残っていました):

Successfully installed pandas
Cleaning up...

pipnumpyインストール 後に同様のメッセージを返しました。

今、私が起動pythonしてそれを呼び出しようとすると:

import pandas

このエラーメッセージが表示されます:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pandas

私が試したときも同じnumpyです。

誰かが私が間違っていることを教えてもらえますか?

4

2 に答える 2

15

argh。パスに同じバージョンの2つのpythonがありますか?そうしないでください。

pip、easy-installなどは特定のpythonインストールに関連付けられており、デフォルトでそのpythonを使用します。したがって、システム提供のpythonとシステム提供のeasy_install(またはシステムpythonを使用して自分でeasy_installをインストール)がある場合、easy_installはデフォルトでシステムpythonのパッケージをインストールします。

この混乱を回避する最善の方法、imhoは、そのバージョン(おそらく2.7)にはsystem pythonを使用し、他のバージョンではmake alt-install、インストール時に使用することです。これにより、などの実行可能ファイルが提供されますpython3.1。システムが提供するバージョンを本当に置き換える必要がある場合は、それをアンインストールします。

あなたがそれをしたら。各Pythonには個別の名前(バージョンで終わる)pythonがあり、システムの名前のままになります。

次に、easy_installをインストールすると、バージョン固有のバージョンがあることに気付くでしょう(easy_install-2.7たとえば)。それらを使用してください。1つが欠落している場合は、適切なpythonを使用してdistutilsをインストールします(たとえば、を使用するpython3.1と、が表示されますeasy_install-3.1)。残念ながら、これ(iirc)を実行するたびに、バージョン管理されていないものが上書きさeasy_installれるため、決して使用しないでください。常にバージョン管理されたものを使用してください。

または、システムバージョン以外のeasy_installまたはpipをインストールして、常にvirtualenvを使用することはできません。virtualenvを使用すると、Pythonのバージョンを指定して(インストールされているすべてのPythonにシステムvirtualenvを使用できるように)、使用するPythonにeasy_install/pipをインストールします。したがって、仮想環境に入ると、すべてが正常に機能します。

そして、私はpipの経験があまりないことに気付いたので、実際にはそれを手伝うことはできません(virtualenvがそれを提供することに注意することを除いて)(どちらが望ましいか:以前はpipがよりよく維持されていたと思います;最近、最新のdistutils / easy_installはpipと同じくらい優れていますが、pipには私が使用したことのない機能がいくつかあります)。

免責事項:上記は、2.6から3.2で実行されるleplの開発で得られた経験からのものであるため、それらすべてでテストする必要があります。私の知る限り、上記で説明したことは私にとってはうまくいきますが、python / easy_install / pipについての深い知識がないため、物事の合理化/説明に誤りがある可能性があります(つまり、念のためにこれをすべて書いていますそれは役に立ちますが、私はエラーがあるのではないかと少し心配しています-もしそうなら誰かが私を訂正してください)。

于 2012-04-30T02:30:34.447 に答える