rcmdnk's blog

Black Hat Python: Python Programming for Hackers and Pentesters

HomebrewでPythonをインストールするとpipも一緒にインストールされますが、 インストール時に表示されるアップデートコマンドでアップデート すると使えなくなるという罠について。

Pythonインストール時に出るインストラクション

HomebrewでPythonをインストールすると

==> Caveats
Setuptools and Pip have been installed. To update them
  pip install --upgrade setuptools
  pip install --upgrade pip

You can install Python packages with
  pip install <package>

They will install into the site-package directory
  /usr/local/lib/python2.7/site-packages

See: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Homebrew-and-Python.md

みたいな表示が出ます。

コレに従って

$ pip install --upgrade setuptools
$ pip install --upgrade pip

を実行してしまうと、

$ pip
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "build/bdist.macosx-10.10-x86_64/egg/pkg_resources.py", line 2951, in <module>
  File "build/bdist.macosx-10.10-x86_64/egg/pkg_resources.py", line 563, in _build_master
  File "build/bdist.macosx-10.10-x86_64/egg/pkg_resources.py", line 576, in _build_from_requirements
  File "build/bdist.macosx-10.10-x86_64/egg/pkg_resources.py", line 755, in resolve
pkg_resources.DistributionNotFound: pip==1.5.6

の様にpipコマンドが使えなくなってしまいます。

これを回避してpipをアップデートするには 上のコマンドの代わりに--no-use-wheelを付けて

$ pip install --upgrade --no-use-wheel pip
$ pip install --upgrade --no-use-wheel setuptools

とします。

この問題は以下のIssueから始まって議論されてますが、 pip1.6.0より新しくなれば大丈夫とのこと。

pip install --upgrade pip breaks pip · Issue #26900 · Homebrew/homebrew · GitHub

ただ、現状含まれてるものは1.5.6で Caveatsもまだアップデートされてない模様なので気を付ける必要があります。

Sponsored Links
Sponsored Links

« Homebrewでインストール時のUnknown SSL protocol error PythonのArgumentParserでsubparserを使うとparse_known_argsでもunknownな引数が無視できないエラーについて »

}