事象
仮想環境構築後、requirement.txtからパッケージを読み込もうとすると以下エラー。
(XXX) C:\Users\XXXX\.conda\envs\hogehoge>pip install -r requirements.txt
~~~~
~~~~
~~~~
ERROR: Could not install packages due to an OSError: [WinError 5] アクセスが拒否されました。: 'C:\\ProgramData\\Anaconda3\\Lib\\site-packages\\urllib3\\__init__.py'
Consider using the `--user` option or check the permissions.
原因
管理者権限の必要ないディレクトリにパッケージをインストールする際に発生。
もっとわかりやすく言うと、フルパスにユーザー名が含まれる作業フォルダの場合、
通常の.Anaconda3\envs直下では不要になるが、ユーザー名\.conda\envs直下では必要となる。
解決法
ディレクトリに管理者権限を付けるか、--user
オプションを付けてユーザーインストールする形で解決可能。
(XXX) C:\Users\XXXX\.conda\envs\hogehoge>pip install -r requirements.txt
--user
通常インストールとユーザーインストールの違いは、下記pyteyonさんのブログさんが分かりやすい。
まとめ
通常はAnaconda直下に仮想環境を構築すれば、問題なく pip install
出来るので特に意識する必要はないが、管理者権限のないユーザーと共同作業をする場合などは、こういった --user
installとの使い分けが必要になってくる。
ベースディレクトリも PYTHONUSERBASE
という環境変数で設定して変更できるので、仮想環境が増えてくる前に整理しておくのが得策だ。