💬

pyenvとpipenv、brew、requirements.txtでいい感じに環境作成

2023/12/14に公開

実施環境

mac pro m2

各ライブラリのよく使う新規環境作成コマンド

pyenv関連

### pythonバージョンのinstall
pyenv install 3.12.0

### ローカルへのpythonバージョン設定
pyenv local 3.12.0

※pyenvを使わず、python3.12 -m venv venvなどをする方が公式準拠ではある。

venv関連

### 仮想環境を構築したいディレクトリに移動

### 環境の作成
python -m venv <<stage>><<stage>>名は任意で良い
※python3.12 -m venv venvとすることで、pythonのバージョン指定で環境たちあげも可能

### 環境の有効化

source <<stage>>/bin/activate
※例として source venv/bin/activateなど

### 終了
(**)$ deactivate

### 環境のクリア
対象の<<stage>>をディレクトリごと削除

requirements.txt関連


### install
pip install -r requirements.txt

それぞれのソフトウェアの簡易的な違い

brew

macと相性の良いライブラリのinstallライブラリ
これを用いてpip管理外のライブラリをインストールする

pyenv

複数のPython 本体(インタプリタ)のバージョンを管理・切りかえて利用
基本的には手動でバージョンを切り替えることになるが、特定のディレクトリに移動すると自動でバージョンを切り替えるようにする設定(pyenv local) などもよく使われている。

venv

仮想環境を構築し、pipでinstallしたソフトウェアが他に悪影響を与えないようにするライブラリ
pythonにデフォルトで格納されている

requirment.txt

ツールではないが、一応補足として、pipのライブラリ情報が記載されたテキストファイル
このtxtを用いてライブラリのバージョン管理を管理、視覚化に活用できる

各ライブラリのインストール手順

step1 Homebrewのインストール

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Homebrewの環境変数の設定(zprofileを使用するパターン)

echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/<<ユーザ名>>/.zprofile
eval $(/opt/homebrew/bin/brew shellenv)

確認

brew -v

pyenvとpipenvのinstall

brew install pyenv

pyenvの環境変数を設定

vi ~/.zprofile

で開いて、以下を設定

export PYENV_ROOT=${HOME}/.pyenv
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
fi

上記の環境変数を反映

source ~/.zprofile

pythonのinstall

pyenv install 3.12.0
pyenv global 3.12.0

pyenvに入っているpythonバージョンの確認

pyenv version

ローカルへのpythonの設定

ローカルの好きなパスを作成し、移動

mkdir ~/test
cd ~/test

特定のディレクトリに好きなバージョンを入れる

pyenv local 3.12.0
pyenv version

venvの使い方(こだわりがなければpipenvよりも推奨)

仮想環境の作成(<<stage>>は仮想環境名)

python -m venv <<stage>>

venvの仮想環境を有効化・終了

・有効化
source <<stage>>/bin/activate
・終了
(**)$ deactivate

パッケージのインストール

(**)$pip install XXX

仮想環境の初期化(インストールしたパッケージを全て削除)

$venv —clear

pipenvで仮想環境の立ち上げ

pipenv --python 3.9.4
pipenv shell

あとは自由に好きなライブラリを入れ込み(例ではpandas)

pipenv install pandas

抜ける時はexitを実行

exit

あとはルートディレクトリにrequirements.txtを配置して以下コマンドでインストール

pip install -r requirements.txt

requirements.txtの作成コマンドは以下

pip3 freeze > requirements.txt

以上

Discussion