87945


JupyterLab上で、BeautifulSoapを利用するために、以下のpip3コマンドを実行したところ、

[code]

    !pip3 install beautifulsoup4
    
[/code]

次のような警告メッセージが表示されました。

[code]

    WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
    
[/code]

virtual environmentを利用するよう勧められているようなのですが、具体的には何をすればよいのでしょうか？  
（virtual environmentとは何のことでしょうか？）

[![画像の説明をここに入力](https://i.stack.imgur.com/iVs97.png)](https://i.stack.imgur.com/iVs97.png)


CC BY-SA 4.0
2022-02-13T08:58:58.610
86313
2022-03-24T13:40:37.080
35267
question
python pip
pipコマンドからの警告(to use a virtual environment)の対処方法


使用している OSが何かが問題で

例えばシステム内の Pythonを置き換えてしまうと, ある種の OSでは動作に支障をきたします  
OS側で提供してる各種コマンドの一部に Python製があり, バージョンが変わると動作が変化する あるいは動作しない可能性が出てくるため

それは Pythonパッケージも同じで, 同名のパッケージあるいは「あるパッケージが存在すればそれを使う」ようなパターンなど,
いつの間にか各種ツールの動作がおかしくなってた, などがあり得る

その手の心配がない(最初から Python入ってなかったなど)場合は無視してよいし  
OSと Pythonが密接している環境では, システム側とユーザー側で環境切り分けるなど対処する方法があります

仮に問題がなくとも, 仮想環境があればいくつかの環境を切り替えて使う・別のバージョンのパッケージを利用するなど利点は多々あるので,
仮想環境利用してみるのもよいでしょう

  * (docs.python.org) [venv --- 仮想環境の作成](https://docs.python.org/ja/3/library/venv.html)  
それまでは virtualenv と呼ばれていたツール。現在は標準機能。

  * [Anaconda](https://www.anaconda.com/)  
科学計算（データサイエンス、機械学習アプリケーション、大規模データ処理、予測分析など）のためのPythonおよびR言語の無料のオープンソースディストリビューション  
[https://ja.wikipedia.org/wiki/Anaconda_(Pythonディストリビューション)](https://ja.wikipedia.org/wiki/Anaconda_\(Python%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3\))
より

  * pipenv, poetry  
次世代の仮想環境

  * [pyenv](https://github.com/pyenv/pyenv)  
Python Version Management

* * *

Anacondaはそれ自体で完結しているため 他のを使う必要はない。他のを混ぜると環境が壊れることも

  * 各種 Pythonパッケージには, Anaconda, venv, pipenv, poetry など
  * Python自体のバージョン管理には, Anacondaか, pyenv

#### pip について

pip については, Anaconda利用するなら pip使用禁止 (壊れて再インストールの話 それなり上る)  
pipenvなど次世代仮想環境では, 通常は pipenv コマンドで行う (ので使わなくてよい)

pip コマンドを(どうしても？)使用する場合は, "user install" を利用するとよいでしょう  
`--user` オプションを付けるかどうかでインストールされる場所が異なる (ことがある)(自動で付く環境も存在する)

参考: pip documentation: User Guide [User
Installs](https://pip.pypa.io/en/stable/user_guide/#user-installs)


CC BY-SA 4.0
2022-03-21T06:15:10.917
87945
2022-03-21T06:15:10.917
43025
86313
answer


venvについて、おおむね理解できました。ありがとうございます。  
[Python3系のアップロード pip installをするとRunning pip as root will break packages and
permissions.](https://teratail.com/questions/358301)の、３つの条件に当てはまらないから、警告が発生したと理解できました。今回はDockerを利用しているので、この警告は無視できると判断しまた。

ちなみに、WSL Dockerコンテナ内のUbuntu 20.04.4 LTSの、  
Python 3.8.10  
pip 22.0.4 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)  
を利用していました。root権限で実行されていました。  
（コメント欄は改行できないため、ここに記載します。）


CC BY-SA 4.0
2022-03-24T13:33:36.160
88007
2022-03-24T13:40:37.080
2022-03-24T13:40:37.080
35267
35267
86313
answer