[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?
質問
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
を使用できるようにするためです。pyenv
とvirtualenv
を同時に使用すると便利です。ただし、Python 3.3以降を使用している場合。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
この場合、ディレクトリは通常、現在の作業ディレクトリになります。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の両方をサポートしているためです。
関連
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】Pythonのvirtualenvを離脱/終了/無効化する方法
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] ローカルディレクトリからrequirements.txtファイルに従ってpipを使用してパッケージをインストールするにはどうすればよいですか?
-
[解決済み] 億の相対的輸入
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python Decorator 練習問題
-
PicgoのイメージベッドツールをPythonで実装する
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み] Python AttributeError: 'module' オブジェクトに 'Serial' 属性がない [重複] 。
-
[解決済み] distribute, distutils, setuptools, distutils2 の違い?