93025
Linux上でPythonのサンドボックスのような環境を構築したいです。  
元の環境を破壊せずに、環境構築をするためにAnacondaを導入するのは正しい判断でしょうか。  
Anacondaは仮想環境を作れるのでサンドボックスのような働きをすると思っています。  
よろしくお願いします。

## 追記

サンドボックスと表現するのは間違っていたかもしれません。  
言いたいこととしては、AnacondaがPythonのパッケージ環境を元環境から隔離されているのかどうかが知りたいです。  
Pythonパッケージをインストールするとき、サーバーの環境を壊さないためにAnacondaを使用しようと思っているのですが、この方法は正しいですか。
CC BY-SA 4.0
2022-12-18T12:16:56.317
92880
2022-12-26T13:50:52.280
2022-12-26T13:50:52.280
19110
56077
question
python anaconda
AnacondaはPythonのサンドボックス環境として使えますか？
短く答えると、はい、できます。なのですが、ちょっと事情がややこしいのでしっかり説明します。

まず Python のサンドボックス、あるいは仮想環境といったときに、`python`
コマンドのバージョンを管理するものと、それに加えてパッケージ群のバージョンを管理するものがあります。今回質問者さんが使いたいのは後者の管理ツールです。

そのような仮想環境の作成ツールとして、Python 公式は venv を用意しています:
<https://docs.python.org/ja/3/library/venv.html>。venv を使うことで仮想環境を有効化した後の
`python` コマンドのバージョンを固定できたり、`pip install`
の際に他の環境とは切り離してパッケージをインストールしたりすることができます。

また、venv の機能と pip の機能を合わせたようなサードパーティーのパッケージ管理ツールとして Pipenv や Poetry
というものも知られています。これらの特徴についてここでは解説しませんが、venv + pip には無い機能を求めて作られたものです。

ところで今まで「パッケージ」と言ってきましたが、venv、Pipenv、Poetry はどれも PyPI <https://pypi.org/>
の形式で管理されているパッケージのことをパッケージとして扱っています。Anaconda が他と違うのはこの部分で、Anaconda は Anaconda
が独自に管理しているパッケージの仕組みを使っています。より詳しくはこちらの記事をご覧ください: ["Understanding Conda and
Pip"](https://www.anaconda.com/blog/understanding-conda-and-pip) (2018-11-28)。

つまり、Anaconda を使って仮想環境を作ることはできるのですが、そうして出来る仮想環境は Anaconda の言っているパッケージ群の環境であり、特に
`pip install` などでインストールされるパッケージたちの環境ではないということです。

ここまでの事情を承知の上で Anaconda の仮想環境を使う場合は、こちらにドキュメントがあります:
<https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-
environments.html>。`conda create` から仮想環境を作り始めてみてください。

PyPI 形式のパッケージを使いたい場合は、venv
等のツールから長所・短所を選んで使うと良いです。たとえば以下のブログ記事は参考になります：[「pipとpipenvとpoetryの技術的・歴史的背景とその展望」](https://vaaaaaanquish.hatenablog.com/entry/2021/03/29/221715)
(2021-03-29)。
CC BY-SA 4.0
2022-12-26T13:50:05.440
93025
2022-12-26T13:50:05.440
19110
92880
answer