既存のpip削除し、バージョンを指定して入れ直す

投稿者: | 2018年8月23日

pipをEasyInstallで導入し、実行したところ下記のようなエラーが発生しました。

$ easy_install pip
  省略)
$ pip -V
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 9, in <module>
    load_entry_point('pip==18.0', 'console_scripts', 'pip')()
  File "/usr/lib/python2.6/dist-packages/pkg_resources/__init__.py", line 521, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.6/dist-packages/pkg_resources/__init__.py", line 2632, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.6/dist-packages/pkg_resources/__init__.py", line 2312, in load
    return self.resolve()
  File "/usr/lib/python2.6/dist-packages/pkg_resources/__init__.py", line 2318, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/lib/python2.6/site-packages/pip-18.0-py2.6.egg/pip/_internal/__init__.py", line 42, in <module>
    from pip._internal import cmdoptions
  File "/usr/local/lib/python2.6/site-packages/pip-18.0-py2.6.egg/pip/_internal/cmdoptions.py", line 16, in <module>
    from pip._internal.index import (
  File "/usr/local/lib/python2.6/site-packages/pip-18.0-py2.6.egg/pip/_internal/index.py", line 536
    {str(c.version) for c in all_candidates},
                      ^
SyntaxError: invalid syntax

古いサーバだったのでPythonのバージョンが古くて動かなかったようです。
使用しているPythonのバージョンは2.6.9ですが、最新のpip18.0で必要なバージョンは2.7.9以上でした。

https://pip.pypa.io/en/stable/installing/ より
pythonのバージョンを上げれば解決できそうですが他のミドルウェアとの兼ね合いがあったので今回はpipをダウングレードしました。
pipをダウングレードするために先ほど導入したpipを削除します。
EasyInstallで導入したパッケージは手動で削除する必要があります。
削除はpip自体のディレクトリの削除とEasyInstallのファイルに記述されたpipの行を削除して実施します。

$ cd /usr/lib/python2.6/site-packages
$ rm -r pip-18.0-py2.6.egg
$ vi easy-install.pth
import sys; sys.__plen = len(sys.path)
./pip-18.0-py2.6.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

./pip-18.0-py2.6.eggの行を削除します。
続いてバージョンを指定してpipを導入します。

$ easy_install pip==9.0
 省略)
$ pip -V
pip 9.0.0 from /usr/local/lib/python2.6/site-packages/pip-9.0.0-py2.6.egg (python 2.6)

これでpipの入れ直しの完了です。
なお、EasyInstallで導入したパッケージを削除した際はファイルの削除とは別に下記のコマンドも実行した方が良いそうです。

$ sudo easy_install -mxN pip

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です