1. ホーム
  2. python

[解決済み】virtualenvとpyenvの関係とは?

2022-04-22 03:46:06

質問

最近、自分のワークフローで virtualenv と virtualenvwrapper の使い方を学びましたが、いくつかのガイドで pyenv が言及されているのを見ましたが、pyenv とは何か、virtualenv とどう違うか/似ているかが理解できていないようです。pyenv は virtualenv のより良い/より新しい置き換えなのか、それとも補完的なツールなのか?もし後者なら、pyenv は何が違うのか、そしてこの二つ(と、もしあれば virtualenvwrapper)はどのように一緒に動くのでしょうか?

解決方法は?

Pyenv バーチャルエンブ は全く異なるツールで、異なる方法で異なることを行うために動作します。

  • ピエンブ はbashの拡張機能で、Windowsでは動作しません。pythonやpipなどの呼び出しをインターセプトして、システムのpythonツールチェーンのうちのひとつに誘導します。 そのため、選択した python のバージョンにインストールされているすべてのライブラリを常に利用することができます - そのため、異なるバージョンの python を切り替える必要があるユーザーに適しています。

  • バーチャルエンブ は純粋な Python であるため、どこでも動作し、コピーを作成します。 オプションで特定のバージョンの Python と pip は、現在のシステムツールチェーンへのリンクを含むかどうかにかかわらず、起動環境に対してローカルにインストールされます。 そのため、テストやデプロイメントにはこちらの方がはるかに適しています。 まさに どのライブラリがどのバージョンで使用されているか、また、グローバルな変更はモジュールに影響を与えないようにします。

ベニュー パイソン3.3

Python 3.3以降では、venvというVirtualEnvのビルトイン実装があることに注意してください(一部のインストールでは、pyvenvというラッパーもあります - このラッパーは次のとおりです)。 Python 3.6で非推奨となった ) を優先的に使用すべきです。ラッパーで起こりうる問題を避けるために、多くの場合 /path/to/python3 -m venv desired/env/path または、優れた py ウィンドウズのパイソンセレクターは py -3 -m venv desired/env/path . で指定されたディレクトリが作成されます。 desired/env/path を設定し、適切に入力します。 一般的には VirtualEnv を使うのと同じような感じです。

追加ツール

上記のうち1つまたは複数のツールを使用する際に役立つため、言及し、検討する価値のあるツールが多数あります。

  • VirtualEnvWrapper VirtualEnv -の使用と管理を簡素化します。 クロスプラットフォーム .
  • pyenv-virtualenv , によってインストールされます。 pyenv-インストーラ このツールは VirtualEnv を管理し、連携するための PyEnv ツールを提供します - これを使えば、複数のバージョンの Python を含むベースインストールを行い、それぞれの中で分離された環境を作成できます Linux/OS-X . Johann Visagie氏による提案
  • PyInstaller は、VirtualEnvの下で開発・テストされたPythonコードを受け取り、それをバンドルして あなたのバージョンの しかし、python がインストールされることは確実でも、python のバージョンとすべてのライブラリがあなたのコードと互換性があるかどうかがわからない場合にも、便利です。