hotch-potch, Note to self

いろいろ作業記録

pip自体のアップデートで「アクセスが拒否」されたときの対応

1.はじめに

Visual Studio 2019と一緒にインストールしたPythonを使ってます。 久々にパッケージをアップデートしてみましたが、pip自体のアップデートに限って失敗してしまったので、その処置例を残します。

2.VisualStudioからのpipアップデート作業

  • Python環境」ウィンドウを開く
  • PowerShellで開く」をクリック

f:id:hotch-potch:20211004225544p:plain

  • PowerShellが開いたら試しにpip3コマンドを実行

f:id:hotch-potch:20211004232350p:plain

  • pip3 list -oコマンドで、アップデートの必要なパッケージ一覧を表示
PS C:\Users\myasu\.platformio\python37> pip3 list -o
Package             Version    Latest    Type
------------------- ---------- --------- -----
astroid             2.2.5      2.8.0     wheel
autopep8            1.4.4      1.5.7     wheel
certifi             2020.4.5.1 2021.5.30 wheel
chardet             3.0.4      4.0.0     wheel
colorama            0.4.1      0.4.4     wheel
docutils            0.16       0.17.1    wheel
idna                2.9        3.2       wheel
isort               4.3.17     5.9.3     wheel
Kivy                1.11.1     2.0.0     wheel
kivy-deps.angle     0.2.0      0.3.0     wheel
kivy-deps.glew      0.2.0      0.3.0     wheel
kivy-deps.gstreamer 0.2.0      0.3.2     wheel
kivy-deps.sdl2      0.2.0      0.4.2     wheel
lazy-object-proxy   1.3.1      1.6.0     wheel
…(省略)
  • pip3 install -U <パッケージ名>で個別にパッケージをアップデート
PS C:\Users\hoge\.platformio\python37> pip3 install -U autopep8 certifi chardet colorama docutils pylint pywin32 setuptools
Requirement already satisfied: autopep8 in c:\users\myasu\appdata\roaming\python\python37\site-packages (1.4.4)
Collecting autopep8
  Downloading autopep8-1.5.7-py2.py3-none-any.whl (45 kB)
     |████████████████████████████████| 45 kB 390 kB/s
Requirement already satisfied: certifi in c:\users\myasu\appdata\roaming\python\python37\site-packages (2020.4.5.1)
Collecting certifi
  Downloading certifi-2021.5.30-py2.py3-none-any.whl (145 kB)
     |████████████████████████████████| 145 kB 3.3 MB/s
…(省略)

基本的にはこの手順でパッケージをアップデートできます。

3.pip自体のアップデート

(1)失敗編

PS C:\Users\hoge\.platformio\python37> pip3 install -U pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/ca/31/b88ef447d595963c01060998cb329251648acf4a067721b0452c45527eb8/pip-21.2.4-py3-none-any.whl (1.6MB)
     |████████████████████████████████| 1.6MB 3.3MB/s
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] アクセスが拒否されました。: 'C:\\Users\\myasu\\AppData\\Local\\Temp\\pip-uninstall-gs4c40cx\\pip3.exe'
Consider using the `--user` option or check the permissions.

このようなエラーと共に、Consider using the--useroption or check the permissions.のメッセージが出ます。

(2)処置編

--userオプションを追加して、再度実行します。

PS C:\Users\hoge\.platformio\python37> pip3 install -U pip --user
Requirement already satisfied: pip in c:\users\myasu\.platformio\python37\lib\site-packages (21.2.4)

これでアップデートできました。

アップデート前のバージョン

PS C:\Users\hoge\.platformio\python37> pip3 list -o
Package             Version    Latest    Type
------------------- ---------- --------- -----
…
pip                 19.2.3     21.2.4    wheel
…

アップデート後のバージョン

PS C:\Users\hoge\.platformio\python37> pip3 list -o
Package             Version    Latest    Type
------------------- ---------- --------- -----
…
pip                 19.2.3     21.2.4    wheel
…

(補足)--userオプションの有無による違い

Windows版(VisualStudioからインストールしたもの)のパッケージのインストール先の違いは下記の通りです。

--user パッケージのインストール先
なし c:\users\<ユーザ名>\appdata\roaming\python\python37\site-packages
あり c:\users\<ユーザ名>.platformio\python37\lib\site-packages

どちらも普通にアクセス権限はありそうですが…

参考

こちらを参考にさせて頂きました。