Python
venv

venvとpyenvそしてcondaのバージョン管理の話

とても興味深い話を聞いたのでシェアします。

開発環境構築では何が良いのか問題は付いて回ると思います。

聞いた限りでは

  • venv
  • conda
  • pyenv(むしろ非推奨)

venv

標準機能で環境の中にシンボリックリンク構造を作り、環境構築。(らしい)

ある程度のバージョンは呼び出すときに

python3.6 -m venv <任意 name>

と書けばある程度はバージョン別管理もできる。

conda

標準機能ではない分venvに劣る。
環境を封入できるという点では非常に優秀

pyenv

標準機能ではない
土台となる部分が複雑になりガチ、トラブルの原因となる
メリットはver3.6.4と細かいバージョンの管理が可能。逆を言うとそこまでやる必要のある人しか必要はない。

venv 環境の構築(複製まで)

環境構築

の前にバージョン確認する

python -V

基本はバージョン3であることを確認。
anaconda でPython環境を構築している場合は、無用なトラブルを避けるためにanaconda環境を辞めること。
事前にanaconda は削除して直にpython3をインストールする。
前段でもお伝えしたがシンプルの環境構築のため、必要な構成で環境構築する。

環境を作る作業フォルダを作り、その作業フォルダーに移動。

mkdir <任意 name> 
cd <任意 name>

venvの一つの環境を作成

python -m venv <任意 name> 

環境を起動する

source [任意 name]/bin/activate

pipで必要なパッケージをインストールする

pip install xxxxx

インストールされているパッケージを確認の仕方

pip freeze

複製方法

requirement.txtにパッケージ情報のファイルをrequirement.txt出力

pip freeze > requirement.txt

※ cat requirement.txt 内容確認できます。後ほど設定ファイルとして読み込みます。

venv pythonでバージョン管理

venvのもう一つの環境を作成

mkdir <任意 name> 
cd <任意 name>
python -m venv <任意 name> 

環境を起動する

source [任意 name]/bin/activate

一つ目で設定ファイルrequirements.txtで同一のパッケージで環境構築出来ます。

pip install --require requirements.txt

以上

作業シンプルで簡単なので今後は、このようにPythonに携わっていきたいと考えています。