この記事は
気軽にpipをupgradeしようとしたら、失敗してハマったので、記録を残しておきます。
※2020/09/22 ページ下部に別コマンドを追記
環境
- Windows10
- Python 3.6.8
- pip 19.2.1 --> 19.2.2
事象の発生
ふと、pip モジュールをアップグレードしようと思いました。
下記のように実行すると、エラーになりました。
> pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/8d/07/f7d7ced2f97ca3098c16565efbe6b15fafcba53e8d9bdb431e09140514b0/pip-19.2.2-py2.py3-none-any.whl (1.4MB)
|████████████████████████████████| 1.4MB 656kB/s
Installing collected packages: pip
Found existing installation: pip 19.2.1
Uninstalling pip-19.2.1:
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] アクセスが拒否されました。: 'd:\\python\\python36\\scripts\\pip.exe'
Consider using the `--user` option or check the permissions.
アクセス権が無いのか、失敗しています。
丁寧に「--user」オプションをつけるようメッセージも出ています。
「--user」オプションをつけて再度実行します。
PS D:\usr\VSCode> pip install --upgrade pip --user
Traceback (most recent call last):
File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\python\python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Python\Python36\Scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
PS D:\usr\VSCode> pip -V
Traceback (most recent call last):
File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\python\python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Python\Python36\Scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
PS D:\usr\VSCode>
PS D:\usr\VSCode> d:\\python\\python36\\scripts\\pip.exe
Traceback (most recent call last):
File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\python\python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\python\python36\scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
PS D:\usr\VSCode> d:\\python\\python36\\scripts\\pip.exe -V
Traceback (most recent call last):
File "d:\python\python36\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\python\python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\python\python36\scripts\pip.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip'
>
しかし、すでにpipは帰らぬ人になっていました。
これ以降は、pipを実行するとすべて、ModuleNotFoundError: No module named 'pip'
となってしまします。
pipを再インストールしたいが、pipが動作しない・・・。
pipのインストール
別な手段でインストールする必要があります。
Installation — pip 19.2.1 documentation を参考に、下記のファイルをダウンロードします。
https://bootstrap.pypa.io/get-pip.py
ダウンロードしたファイルをpythonで実行します。
> python get-pip.py
完了後、pipが正常動作するようになりました。
> pip -V
pip 19.2.2 from d:\python\python36\lib\site-packages\pip (python 3.6)
しかも、最新バージョンになっていました。
念のため、upgradeします。
こんどは、きちんと--userオプションをつけて。
> pip install --upgrade pip --user
すでに最新版になっているため、アップグレードはされませんでしたが、pipの実行は行われました。
ちなみに、
--user オプションをつけると、モジュールをユーザディレクトリにインストールします。
参考:pip 19.2.1 documentation » Reference Guide
2020/09/22 追記
今では、下記のコマンドでpipのアップデートを実行しています。
現状、トラブルは発生していません。
$ python -m pip install -U pip