pyenv-virtualenv と virtualenv を混同している記事をたまに見かけるので、注意喚起です。
概要
pyenv とともに仮想環境を使いたいとき、 pyenv のプラグインである pyenv-virtualenv を使うことがあります。
この pyenv-virtualenv は、 virtualenv とは別のものです。
両者を混同している記事がQiita にもありますが、
以下を見るとわかるように、それぞれ別プロダクトです。ご注意を。
pyenv-virtualenv
pyenv のプラグインで、 pyenv virtualenv
コマンドを使えるようにするもの。
公式サイト
使用例
新しい仮想環境を作るには、
$ pyenv virtualenv {pythonバージョン} {仮想環境のディレクトリ}
を実行します。
例:
$ pyenv virtualenv 2.7.10 my-virtual-env-2.7.10
(公式サイトより)
補足
内部的には virtualenv を呼び出しているようです。
(はっきりとは書いていませんが)公式ページに以下のようにあります。
pyenv-virtualenv
usespython -m venv
if it is available and thevirtualenv
command is not available.
(venv
は virtualenv が Python 公式に取り入れられたものです (Python 3.3 以降で使用可能))
virtualenv
公式サイト
https://github.com/pypa/virtualenv
https://virtualenv.pypa.io/en/stable/
使用例
新しい仮想環境を作るには、
$ virtualenv {仮想環境ディレクトリ名}
を実行します。
例:
$ virtualenv my-virtual-env
なお -p
オプションによって、特定の Python インタープリタを指定することもできます。
補足 その1
実際のところは、まず「そもそも自分の用途に pyenv は必要なのか?」と考える必要があります。
virtualenv でも、 Python の処理系のバージョンをざっくり指定できますので。
補足 その2
pyenv-virtualenvwrapper と virtualenvwrapper もまた、それぞれ別のプロダクトです。