一年に一回は遭遇している気がするのでメモしておきます。
環境
- Ubuntu16.04
- python3.5.2
対処方法
pip install --upgrade pip
を実行した後にpip
を実行すると以下のようなエラーがでることがあります。
Traceback (most recent call last):
File "get-pip.py", line 24226, in <module>
main()
File "get-pip.py", line 199, in main
bootstrap(tmpdir=tmpdir)
File "get-pip.py", line 82, in bootstrap
from pip._internal.cli.main import main as pip_entry_point
File "/tmp/tmpUgc5ng/pip.zip/pip/_internal/cli/main.py", line 60
sys.stderr.write(f"ERROR: {exc}")
^
SyntaxError: invalid syntax
これは、f""
という記述がpython3.5ではサポートされていないことが原因です。python3.6からこの記述はサポートされています。
Ubuntuには、デフォルトでpython2.X系が入っているので、python3.X系、python2.X系の両方を直します。
まず、python2.X系の対処法です。
$ wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
$ python get-pip.py
つぎに、python3.X系の対処法です。
上記と同様に実行すると以下のようなエラーに遭遇したため、/usr/bin/pip3
を削除してからインストールしました。
$ python get-pip.py
Traceback (most recent call last):
File "get-pip.py", line 24, in <module>
import pkgutil
ImportError: No module named pkgutil
以下が手順です。
$ sudo apt-get --purge autoremove python3-pip
$ wget https://bootstrap.pypa.io/pip/3.5/get-pip.py
$ python3 get-pip.py
そもそもの対処法
pip install --upgrade pip
をする際に、サポートされているバージョンを以下のように指定していれば、このようなエラーは発生しないと思います。
$ pip3 install --upgrade pip==20.3