2017-08-11 4 views
5

これはちょっと変わったことです。私はMac(ヨセミテ)の同僚を助けて、出荷されたPython実行ファイル/usr/bin/python(2.7.10)を実行しています。私は、出荷されたeasy_installpip(9.0.1)をインストールするために使用しました。/usr/local/binに寄託され、シバンライン#!/usr/bin/pythonで寄託されました。PipとPythonはモジュールの位置に同意しない

テールpip install -vvv -U sixの:

Installed version (1.10.0) is most up-to-date (past versions: 0.9.0, 0.9.1, 0.9.2, 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0, 1.4.1, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.6.1, 1.7.0, 1.7.1, 1.7.2, 1.7.3, 1.8.0, 1.9.0, 1.10.0) 
Requirement already up-to-date: six in /Library/Python/2.7/site-packages 

出力python -c 'import six; print six.__version__'の:

1.4.1 
私はその後だけピップとPythonは何とかそのモジュールのバージョンについて同意することを見つけるために、 sixを含め、いくつかのモジュールをインストールするために pipを使用しました

関連するロケーション:

$ type pip 
pip is /usr/local/bin/pip 
$ type python 
python is /usr/bin/python 
$ head -n 1 $(type -p pip) 
#!/usr/bin/python 

$PYTHONPATHが環境内に設定されていません。しかし、彼らはまだ別の場所を探しています。 pipの出力からわかるように、それは/Library/Python/2.7/site-packages/を探している/格納しています。しかし、私がsys.pathをループすると、sixという最初の場所は/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/になります。

ここで切断はどこですか?

+0

あなたの同僚のMacはEl Capitanですか?多分[this](https://github.com/FindHotel/s3keyring/issues/6)に関連しています –

+0

彼はヨセミテを走っていますが、それは同様の状況のようです。 –

+0

[This](https://github.com/pypa/) pip/issues/3165#issuecomment-146666737)多分 –

答えて

1

問題はロードパスの順番であることが判明しました。私のSierraマシン(ここでは、/usr/bin/pythonの新しいsixをインストールできたことが確認されました)の/Library/Python/2.7/site-packagesの前になり、/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/pythonsys.pathになります。しかし、同僚のマシンでは/Library/Python/2.7/site-packagesが最後のエントリで、Extrasフォルダーの後に来るので、pipインストールされたバージョンはシステムインストールによってマスクされます。

これはSierraによって修正されたYosemite Pythonのインストールに問題があると思われますが、いずれにしても簡単な修正が見られません。だからオプションは別のPythonインスタンスをインストールすることです(私の好み、私は通常pyenvとにかく使用します)。PYTHONPATHを手動で設定してsite-packagesを前面に出します。または、新しいMacOSにアップグレードすると思います。

これを理解する助けをいただいた皆様、ありがとうございます。

関連する問題