Python 3.3 の標準ライブラリには、新しいパッケージ が含まれていますvenv
。これは何を行うのでしょうか。また、正規表現 に一致する他のすべてのパッケージとどう違うのでしょうか(py)?(v|virtual|pip)?env
。
ベストアンサー1
初心者への個人的なアドバイスは、まずは学ぶことから始めることですvirtualenv
そしてpip
Python 2 と 3 の両方でさまざまな状況で動作するツールを試し、必要になったら他のツールも選びます。
さて、次の質問に答えましょう。venv、virtualenv など、似た名前のものの違いは何でしょうか?
標準ライブラリにない PyPI パッケージ:
virtualenv
は、Python ライブラリ用の分離された Python 環境を作成する非常に人気のあるツールです。このツールに慣れていない場合は、非常に便利なツールなので、ぜひ習得することをお勧めします。これは、一連のファイルをディレクトリ (例:
env/
) にインストールし、PATH
環境変数を変更してカスタムbin
ディレクトリ (例: ) をプレフィックスとして追加することで機能します。またはバイナリenv/bin/
の正確なコピーがこのディレクトリに配置されますが、Python は、まず環境ディレクトリでパスを基準としたライブラリを探すようにプログラムされています。 これは Python の標準ライブラリの一部ではありませんが、PyPA (Python Packaging Authority) によって正式に承認されています。 をアクティブ化すると、 を使用して仮想環境にパッケージをインストールできます。python
python3
pip
pyenv
は、Python のバージョンを分離するために使用されます。たとえば、コードを Python 2.7、3.6、3.7、3.8 でテストしたい場合、それらのバージョンを切り替える方法が必要になります。有効にすると、環境PATH
変数に がプレフィックスとして追加され、Python コマンド ( 、 )~/.pyenv/shims
に一致する特別なファイルがあります。これらは Python に同梱のコマンドのコピーではなく、環境変数、ファイル、またはファイルに基づいて、実行する Python のバージョンをその場で決定する特別なスクリプトです。また、 コマンド を使用して、複数の Python バージョンのダウンロードとインストールのプロセスが容易になります。python
pip
PYENV_VERSION
.python-version
~/.pyenv/version
pyenv
pyenv install
pyenv-virtualenv
pyenv
は、と同じ作者によるのプラグインで、と を同時に便利にpyenv
使用できるようにします。ただし、Python 3.3 以降を使用している場合、は の代わりにを実行しようとします (使用可能な場合)。便利な機能が必要ない場合は、を使用せずにと を一緒に使用できます。pyenv
virtualenv
pyenv-virtualenv
python -m venv
virtualenv
virtualenv
pyenv
pyenv-virtualenv
virtualenvwrapper
virtualenv
は(参照:ドキュメントmkvirtualenv
) は、、、などのコマンドを提供しlssitepackages
、特にworkon
異なるディレクトリ間を切り替えるのに便利virtualenv
です。このツールは、複数のディレクトリが必要な場合に特に便利ですvirtualenv
。pyenv-virtualenvwrapper
pyenv
は、と同じ作者による、にpyenv
便利に統合するための のプラグインです。virtualenvwrapper
pyenv
pipenv
Pipfile
は、、pip
およびをvirtualenv
コマンドライン上の 1 つのコマンドに結合することを目的としています。virtualenv
ディレクトリは通常 に配置され~/.local/share/virtualenvs/XXX
、 はXXX
プロジェクト ディレクトリのパスのハッシュになります。これは とは異なりますvirtualenv
。 では、ディレクトリは通常現在の作業ディレクトリにあります。 は、 Python アプリケーション (ライブラリではなく) を開発するときに使用することを目的としています。 の代替として などpipenv
がありますが、この質問は同様の名前のパッケージについてのみであるため、ここではリストしません。pipenv
poetry
標準ライブラリ:
pyvenv
(混同しないようにpyenv
前のセクションで説明したスクリプトは、Python 3.3から3.7に同梱されているスクリプトです。Python 3.8 から削除されました問題があったためです (紛らわしい名前は言うまでもありません)。 を実行すると、python3 -m venv
とまったく同じ効果が得られますpyvenv
。venv
は Python 3 に同梱されているパッケージで、 を使用して実行できますpython3 -m venv
(ただし、何らかの理由で、Ubuntu/Debian などの一部のディストリビューションでは、別のディストリビューション パッケージに分離されていますpython3-venv
)。 と同じ目的を果たしますvirtualenv
が、機能のサブセットのみを備えています (ここで比較をご覧ください) はvirtualenv
よりも人気がありvenv
、特に前者は Python 2 と 3 の両方をサポートしているためです。