<目次>
(1) Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処方法について
(1-1) エラーメッセージ・発生状況
(1-2) 原因
(1-3) 対策
(1) Pythonで「ERROR: Could not install packages due to an OSError: [WinError 2]」が出た時の原因と対処方法について
(1-1) エラーメッセージ・発生状況
Visual Studio CodeのPowershellコンソールから、Pythonのpip(パッケージ管理ツール)を使いパッケージインストールした際に、次のエラーが出でインストールに失敗しました。
(実行コマンド)
> pip install requests
(エラーメッセージ)
ERROR: Could not install packages due to an OSError: [WinError 2] 指定されたファイルが見つかりません。: 'C:\\Python310\\Scripts\\normalizer.exe' -> 'C:\\Python310\\Scripts\\normalizer.exe.deleteme'
(図111)
(1-2) 原因
このエラーメッセージは、インストールの権限が足りない場合などで出力されます(Linuxでいうroot権限や、WindowsでいうAdmin権限が必要な所、それが無いためにエラーになっている)。
(1-3) 対策
上記原因のため、管理者権限でインストールするか、「–user」オプションで管理者権限を必要としないインストールをするか、の大きく2択になると思います。今回は後者の「–user」の方法を紹介します。
●「–user」について
「–user」はpipによる、サードパーティ製のライブラリのインストールを、ユーザーのホームディレクトリに対して行うように指示するオプションです。通常pipによるインストールは、システムディレクトリ(例:Linuxの場合「/home/[ユーザー名]/local/lib/pythonX.X/site-packages」のようなディレクトリ)に対して実施し、OSの全てのユーザーに対して利用可能にしますが、これには「管理者権限」が必要となります。
「–user」を付与する事で、そういった管理者権限を必要としない、ユーザー自身に閉じた(他のユーザーからは参照できない)インストールを実施できます。
インストールされたパッケージは、Windowsの場合は標準で下記のようなパスに保存されます(※[ユーザー名]をご自身のユーザー名で置き換え)
C:\Users\[ユーザー名]\AppData\Roaming\Python\Python310\site-packages
(図112)この配下にあるパッケージは、インストールしたユーザーのみ使用できます
●「–user」オプションによるインストールの場合
エラーになった項目の末尾に「–user」オプションを付与してインストールします。
(コマンド)
> pip install requests --user
(実行結果)→インストール成功
Successfully installed certifi-2021.10.8 requests-2.26.0
(図121)