Python / Windowsのpipインストールで「アクセスが拒否されました」を解決する

Windowsのpipで[WinError 5] アクセスが拒否されましたが出たら、失敗したファイルのパスと導入に使ったPythonを確認します。保護されたグローバルsite-packagesが対象なら、書き込み可能なプロジェクトに仮想環境を作り、そのPythonでpipを実行します。使用中ファイルや一時領域のブロックは別途調査が必要で、管理者実行ですべて解決するとは限りません。

エラー番号と失敗したパスを確認

Windowsエラーコード5はアクセス拒否です。pipの最後のエラーで作成・置換できなかったファイルを確認します。Program FilesのPythonと一時フォルダーを同じ問題として扱いません。

対象 確認事項 次の対応
グローバルPythonのLib\site-packages 選択Pythonと書き込み権限 プロジェクト仮想環境へ分離
Scriptsの実行ファイル・既存パッケージ 利用中の関連アプリとブロック記録 該当アプリだけ終了し同じ環境で再試行
Temp・キャッシュ・作業フォルダー 権限・容量・セキュリティ方針 その場所を調査し必要なら管理者へ方針確認
導入成功後のimport失敗 導入と実行のPythonが同じか 実行器のパスとLocationを比較

表は調査順であり、パスだけで原因を断定しません。管理対象PCでは指定環境と方針に従い、システムフォルダー全体の権限開放やセキュリティソフトの無効化で回避しないでください。

どのPythonのpipかを確認

次はWindows PowerShellのコマンドで、>>>が出るPython対話画面に入力しません。py -3がなければ既存Pythonの実行ファイルか、そのPythonを指すpythonに置き換えます。複数版があれば目的の実行器を明示します。

py -3 -c "import sys; print(sys.executable)"
py -3 -m pip --version

最初は実行ファイル、次はpipの版・場所・Python版を表示します。python -m pipなら選んだPythonでモジュールを動かし、単独のpipが別環境を指す混乱を減らせます。エラーを出した実行器と照合します。

プロジェクト仮想環境へ導入して確認

書き込み可能な新しい作業フォルダーでPowerShellを開きます。.venvはソースと分けた仮想環境フォルダーです。既に別用途で使う場所へ重ねて作成しません。

py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip --version

pipのパスがプロジェクトの.venv配下か確認します。そのPythonを直接呼ぶので有効化スクリプトやPowerShell実行方針の変更は不要です。次は例としてColorama 0.4.6を導入しimportする完全なコマンドで、実際のプロジェクトでは必要な依存関係に置き換えます。

.\.venv\Scripts\python.exe -m pip install "colorama==0.4.6"
.\.venv\Scripts\python.exe -c "import colorama, sys; print(colorama.__version__); print(sys.prefix != sys.base_prefix)"

導入後、最後のコマンドは0.4.6とTrueを2行で表示します。Trueは仮想環境を示します。この流れはWindowsのPython 3.12.14と仮想環境のpip 25.0.1で確認しました。ログの文面やパスは環境によって異なります。

.\.venv\Scripts\python.exe -m pip show colorama

pip showのLocationが.venv\Lib\site-packagesか確認します。ターミナルで成功してもIDEが別Pythonを使う場合があるため、実行器を同じ.venv\Scripts\python.exeに合わせます。

--userは仮想環境外の代替手段

--user導入はグローバルではなく、そのPythonのユーザーパッケージ領域へ書き込みます。プロジェクト分離が不要な個人環境では選べますが、複数プロジェクトの版を分離しません。先の手順で基本Pythonを確認してから使います。

py -3 -m pip install --user "colorama==0.4.6"

基本Pythonのユーザー領域へ例のパッケージを導入するコマンドです。仮想環境の手順には加えません。通常の隔離環境はユーザー領域が見えないため--userを拒否します。仮想環境内でも権限エラーなら、このオプション追加より失敗したパスを調べます。

まだ失敗する場合とpipがない場合

最後のメッセージを読み、すべてを権限問題と決めつけません。No matching distribution found、証明書・プロキシー・通信エラーは互換性や接続の確認が必要です。Pythonパッケージ導入ガイドで実行器と要件を合わせます。

新しい仮想環境でNo module named pipなら次の修復を使えます。ensurepipはPythonに同梱されたpipを準備し、必ずインターネット上の最新版へ更新するものではありません。

.\.venv\Scripts\python.exe -m ensurepip --upgrade
.\.venv\Scripts\python.exe -m pip --version

基本Pythonにensurepipがない、または環境作成に繰り返し失敗する場合は配布構成とパスを調べます。関連IDEやアプリがファイルを使用中なら正常終了して再試行します。保護機能のブロックは記録と許可方針を確認し、管理者導入は組織が意図する配布手順の場合に限って使います。

例の導入を元に戻す

新しい例の仮想環境へ入れたColoramaだけを削除するには次を使います。-yは確認を省くので環境と対象を先に確認します。

.\.venv\Scripts\python.exe -m pip uninstall -y colorama

pip uninstallは指定環境のパッケージを削除します。不要な新規環境は内部にソースがなく他で参照しないことを確認して整理できます。既存プロジェクトを変えたなら要求バージョンの記録に戻します。報告には失敗コマンド、Python・pipの場所、最後のエラーと対象パスを添えると診断に役立ちます。