私の問題は、エラーがないにもかかわらず、pipがmy Python Packagesを更新しないことです。
これは this one に似ていますが、どうすればよいかはまだわかります。基本的に、pythonのすべての私のパッケージは、pipですべてを更新した後でも、途方もなく古くなっているようです。詳細は次のとおりです。
それを使用して、私は持っています:
私が試した後でも:
Sudo pip uninstall numpy
に続く:
Sudo pip install numpy
どちらも正常に完了しますが、pythonに移動してnumpyのバージョンを確認すると、まだ古いバージョンです(他のすべてのパッケージと同様)。
ここで何が起こっているのかわかりませんか?...これをどのように修正できますか?追伸私はこれが初めてなので、明示的な指示が必要になる場合があります。ありがとう。また、誰かが望んでいる場合は、numpyをインストールしているpipのスクリーンショットを提供できます。
編集:
コメントに従って実行したコマンド:
$which -a pip
/usr/local/bin/pip
$ head -1 $(which pip)
#!/usr/bin/python
$ which -a python
/usr/bin/python
OS X 10.9では、AppleのPythonには、/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
という名前のディレクトリに、プリインストールされた追加のパッケージが多数付属しています。numpy
を含みます。
そして、それらがインストールされる方法(easy_install
をsetuptools
の古い0.7より前のバージョンで使用するが、通常のeasy_install
宛先のいずれにもないかのように)、pip
はそれらについて何も知りません。
つまり、Sudo pip install numpy
は、numpy
の個別のコピーを'/Library/Python/2.7/site-packages'
にインストールします。ただし、sys.path
では、Extras
ディレクトリがsite-packages
ディレクトリの前にあるため、import numpy
は、Appleのコピーを見つけます。それがなぜなのかはわかりませんが、それはおそらくあなたが猿になりたいものではありません。
それで、これをどのように修正しますか?
2つの最適なソリューションは次のとおりです。
virtualenv
を使用し、システム全体ではなく、numpy
および友人を仮想環境にインストールします。これには、virtualenv
の使用方法を学習する必要があるという欠点があります。ただし、ある時点でそれを実行することは間違いなく価値があります。今すぐ学ぶ時間がある場合は、それを試してください。
Python 3.xにアップグレードします。python.orgインストーラから、またはHomebrewを使用してください。Python 3.4以降には、pip
が付属し、付属していませんpip
- unfriendlyのプリインストールされたパッケージです。また、別個の2.7をインストールする場合とは異なり、AppleのPython=にはまったく影響しません。python3
とpython
、pip3
とpip
などはすべて、別々のプログラムであり、PATHのしくみなどについて学ぶ必要はありません。これには、Python 3.xを学習する必要があるという欠点があります いくつかの大きな変更 ですので、少し覚える必要がありますが、ある時点で間違いなく行う価値があります。
これらのどちらも可能ではないと仮定すると、Appleの「エクストラ」の新しいバージョンをインストールするパッケージには、pip
ではなくeasy_install
を使用するのが最も簡単なオプションだと思います。 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
の内容を確認すると、それらの完全なリストを取得できます。 numpy
をアップグレードするときは、おそらくscipy
とmatplotlib
もアップグレードする必要があります。他のすべては無関係です。 (もちろん、PyObjC
やdateutil
、その他気になるものはアップグレードできますが、そうする必要はありません。)
これは理想的なソリューションではありません。 easy_install
がpip
よりも劣っている理由はたくさんあります(たとえば、アンインストーラがないため、/Library/blah/blah
パスがどこにあるかを覚えておかなければなりません(または、Python内からsys.path
を出力することでもう一度見つけます)。通常、readline
とpip
自体を除くすべてのeasy_install
を提案します(そして、AppleのPythonのみを使用します)。
古い質問ですが、この問題を解決しようとすると、私の解決策を投稿します。
私は@abarnertの診断が正しいとわかりましたが、どの解決策も好きではありません。numpyのデフォルトバージョンを本当にアップグレードしたいのです。問題は、これらの人たちがいるディレクトリ(@abarnertが言及した)は、この「ホイール」グループに属しているため、Sudo
によってさえ触れることができないということです。実際、そこに行ってSudo rm -rf blah
を実行すると、アクセス許可拒否エラーが発生します。
これを回避するには、抜本的なアクションを実行する必要があります。
csrutil disable
と入力しますpip2 install --user --upgrade numpy
でアップグレードします(この問題のある他のパッケージでも同じです)。注:「csrutil disable」は、マシンを不安定にする可能性がある深刻なビジネスです。絶対に必要な場合にのみ使用し、できるだけ早く再度有効にします。しかし、私の知る限り、これはwheelディレクトリ内のPythonパッケージをアップグレードする唯一の方法です。
Appleによってインストールされたnumpyおよびscipyバージョンの名前を変更して、Pipによってインストールされた新しいバージョンの使用を開始します。