pip + sys.stderr.write(f“ERROR: {exc}”)
やんごとなき事情で、古臭いPythonを使っていたら pip が使えなくなってしまった。 python 3.5、2.x を使っていたのだが、どちらも sys.stderr.write(f“ERROR: {exc}”) とエラーが出てしまう。 どうやら 3.6以下は 今後pipのサポートから外れるとのこと。
最新バージョンを追えれば問題ないのですが、 仕方ないこともある。
このエラーが出ると python -m pip hoge
が使えなくなるので、pip を使ってpip のバージョンを管理できなくなってしまう。
get-pip.py
で特定のバージョンをインストール
にアクセスして,お目当ての pip を探そう.
適当なバージョンの get-pip.py
を読めば,どのバージョンがダウンロードできるかわかる.
python 2.x の場合
pip (version 20.3.4) をインスコ
virtualenv --python=python2 .venv/ cd .venv source bin/activate curl https://bootstrap.pypa.io/2.7/get-pip.py --output get-pip.py python get-pip.py pip install hoge
python 3.x の場合
pip (version 7.1.2). をインスコ
virtualenv --python=python3 .venv/ cd .venv source bin/activate curl https://bootstrap.pypa.io/3.2/get-pip.py --output get-pip.py python get-pip.py pip install hoge
余談
get-pip.py
を読めばわかるが,DATA = b""" ...
の箇所はzipで固めたpipがそのまま張り付けられてる.
安定動作している自環境のpipをzip圧縮し, hexdump
でダンプすれば,似たようなことが合出来る.