1. ホーム
  2. パイソン

[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?

2022-03-18 04:57:45

質問

Python 3.3 は標準ライブラリに新しいパッケージ venv . これは何をするもので、正規表現にマッチする他のすべてのパッケージとどう違うのでしょうか。 (py)?(v|virtual|pip)?env ?

解決方法は?

初心者の方への個人的なおすすめです。 を学ぶことから始めましょう。 virtualenv pip Python 2と3の両方で、そして様々な状況で動作するツールで、必要になってから他のツールをピックアップします。

さて、「venv、virtualenvなど、同じような名前のものは何が違うのか」という疑問に対する答えです。

標準ライブラリにないPyPIパッケージ。

  • virtualenv は、Pythonライブラリのために分離されたPython環境を作成する非常に人気のあるツールです。もしこのツールに馴染みがないのであれば、非常に便利なツールなので、ぜひ習得することをお勧めします。

    これは、ディレクトリにファイルの束をインストールすることで動作します(例. env/ を変更し、さらに PATH 環境変数の前に、カスタム bin ディレクトリを作成します(例. env/bin/ ). の完全なコピーです。 python または python3 バイナリはこのディレクトリに置かれますが、Pythonはまず環境ディレクトリでパスから相対的なライブラリを探すようにプログラムされています。これはPythonの標準ライブラリには含まれませんが、PyPA(Python Packaging Authority)によって公式に祝福されています。一度有効化されると、仮想環境にパッケージをインストールするために pip .

  • pyenv は、Pythonのバージョンを分離するために使用されます。例えば、あなたのコードを Python 2.7, 3.6, 3.7, 3.8 に対してテストしたい場合、それらを切り替える方法が必要になるでしょう。一度有効にすると、それはプレフィックスとして PATH 環境変数に ~/.pyenv/shims で、Pythonコマンドにマッチする特別なファイル( python , pip ). これらはPythonに同梱されているコマンドのコピーではなく、Pythonのどのバージョンを実行するかを PYENV_VERSION 環境変数、または .python-version ファイル、または ~/.pyenv/version ファイルを作成します。 pyenv はまた、複数のバージョンのPythonをダウンロードしてインストールするプロセスを容易にするために、コマンド pyenv install .

  • pyenv-virtualenv はプラグインで pyenv と同じ作者によるものです。 pyenv を使用できるようにするためです。 pyenvvirtualenv を同時に使用すると便利です。ただし、Python 3.3以降を使用している場合。 pyenv-virtualenv を実行しようとします。 python -m venv の代わりに、利用可能であれば virtualenv . を使用することができます。 virtualenvpyenv を使わずに、一緒に pyenv-virtualenv もし、便利な機能を必要としないのであれば

  • virtualenvwrapper の拡張機能セットです。 virtualenv (参照 ドキュメント ). これは次のようなコマンドを与えてくれます。 mkvirtualenv , lssitepackages であり、特に workon を切り替えて使用します。 virtualenv ディレクトリを作成します。このツールは特に、複数の virtualenv ディレクトリを作成します。

  • pyenv-virtualenvwrapper はプラグインで pyenv と同じ作者によるものです。 pyenv を便利に統合するために virtualenvwrapperpyenv .

  • pipenv を組み合わせることを目的としています。 Pipfile , pipvirtualenv をコマンドライン上で1つのコマンドにまとめました。そのため virtualenv ディレクトリに配置されるのが一般的です。 ~/.local/share/virtualenvs/XXX と共に XXX は、プロジェクトディレクトリのパスのハッシュです。これは virtualenv この場合、ディレクトリは通常、現在の作業ディレクトリになります。 pipenv は、(ライブラリではなく)Pythonアプリケーションを開発するときに使用されることを意図しています。の代替となるものがあります。 pipenv のようなものです。 poetry この質問は、似たような名前のパッケージについてのみなので、ここでは挙げません。

標準ライブラリです。

  • pyvenv (と混同しないように pyenv はPython 3に同梱されているスクリプトですが Python 3.6で非推奨となった という問題がありました(紛らわしい名前であることは言うまでもありません)。Python 3.6+では、正確に相当するのは python3 -m venv .

  • venv は、Python 3 に同梱されているパッケージで python3 -m venv (のように、別のディストロ・パッケージに分離しているディストロもあります)。 python3-venv Ubuntu/Debianの場合)。と同じ役割を果たします。 virtualenv が、その機能のサブセットしか持っていない ( 比較はこちら ). virtualenv よりも、引き続き人気があります。 venv 特に前者はPython 2と3の両方をサポートしているためです。