anyenv+pyenv+poetryでPythonの環境構築


## はじめに
Pythonの環境構築を行ったので、インストール手順と各ツールの操作方法をまとめました。
備忘録ではありますが、誰かのお役に立てば、、、
## 実行環境と前提条件
 * 実行環境
   * OS: macOS
   * shell: zsh
 * 前提条件
   * Homebrewがインストール済みであること

## 各ツールについて
#### anyenv
  - **env系ツールを管理するツール。今回はpyenvのインストールに使用しました。
  - anyenvのアップデート用plugin
    - anyenv-update(https://github.com/znz/anyenv-update)
  - GitHub: https://github.com/anyenv/anyenv

#### pyenv
  - Pythonのバージョン管理ツール。
  - GitHub: https://github.com/pyenv/pyenv

#### poetry
  - パッケージ管理+仮想環境構築ツール。
  - GitHub: https://github.com/python-poetry/poetry

## anyenvのインストールと基本操作
#### anyenvのインストール
```
$ brew install anyenv
```
#### anyenvの設定追加
```
$ anyenv init
# Load anyenv automatically by adding
# the following to ~/.zshrc:

eval "$(anyenv init -)"
```
initの実行結果の指示に従って~/.zshrcへ eval "$(anyenv init -)" の追加と設定の反映。
```
$ echo '# anyenv\neval "$(anyenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
```
#### anyenvの初期化処理
```
$ anyenv install --init
```

#### anyenv-updateプラグインのインストール
```
$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
```
 #### **envのアップデート
```
$ anyenv update
```

#### インストール可能な**envの一覧取得
````
$ anyenv install --list
````

#### anyenvでの**envのインストール
```
$ anyenv install <env名>
ex. $ anyenv install pyenv
```

## pyenvのインストールと基本操作
#### pyenvのインストール
```
$ anyenv install pyenv
```
#### インストール可能なPythonのバーション確認
```
$ pyenv install --list
````

#### 特定バージョンのPythonのインストール
```
$ pyenv install <version>
ex. $ pyenv install 3.10.6
```

#### インストール済みPythonのバージョン確認
```
$ pyenv versions
```

#### globalで使用するバージョンの設定
globalで設定したバージョンは、デフォルトのバージョンとして使用されます。
```
$ pyenv global <インストール済みPythonのバージョン>
ex. $ pyenv global 3.10.6
```

#### localで使用するバージョンの設定
localの設定コマンドを実行すると、カレントディレクトリに.python-versionが生成されます。
.python-versionが存在するディレクトリ配下のみ、globalではなくlocalで指定したバーションが適応されます。
生成された.python-versionを削除するとlocalの設定が削除されます。
```
$ pyenv local <インストール済みPythonのバージョン>
ex. $ pyenv local 3.10.6
```

#### 現在のshellで有効となるバージョンの設定
shellで設定したバージョンは、現在のshellでのみ有効になる一時的な設定です。
```
$ pyenv shell <インストール済みPythonのバージョン>
ex. pyenv shell 3.10.6
```

## poetryのインストールと基本操作
#### poetryのインストールと設定追加
```
$ curl -sSL https://install.python-poetry.org | python3 -
$ echo '# poetry\nexport PATH="$HOME/.local/bin/:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
```

#### バージョン確認
```
$ poetry --version
```

#### poetryの更新
```
$ poetry self update
```

#### プロジェクトの雛形の生成
```
$ poetry new <プロジェクト名>
ex. poetry new sample
```

#### 仮想環境の生成
```
$ poetry install
```

#### パッケージの追加
```
$ poetry add <パッケージ名>
```

#### パッケージの削除
```
$ poetry remove <パッケージ名>
```
#### パッケージの一覧取得
```
$ poetry show
```

#### プログラムの実行
```
$ poetry run python xxx.py
```
または
```
# 仮想環境へアクセスし、実行
$ poetry shell
$ python xxx.py

# 仮想環境から出る
$ exit
```

#### 仮想環境の情報取得
```
$ poetry env info
$ poetry env list
```

#### 仮想環境の削除
```
$ poetry env remove <削除対象>
ex $ poetry env remove 3.10
```

#### poetryのアンインストール
```
$ curl -sSL https://install.python-poetry.org | python3 - --uninstall
```


## おまけ
以前はpoetryではなく、pyenv-virtualenvを使用していたのでインストール手順と基本操作をまとめました。

#### pyenv-virtualenvについて
- Pythonの仮想環境構築ツールで、仮想環境内でパッケージの管理を行います

#### pyenv-virtualenvのインストール
```
$ brew install pyenv-virtualenv
```
#### pyenv-virtualenvの設定追加
````
$ echo '# pyenv-virtualenv\neval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
$ source ~/.zshrc
````
#### 特定バージョンの仮想環境の生成
```
# 指定したバージョンの仮想環境が生成されます
$ pyenv virtualenv <インストール済みPythonのバージョン> <仮想環境名>
ex. $ pyenv virtualenv 3.10.6 sample

# 生成した仮想環境名を指定して
$ pyenv local <仮想環境名>
ex. $ pyenv virtualenv sample
```
#### 生成済みの仮想環境一覧
```
$ pyenv virtualenvs
```

#### 仮想環境の削除
```
$ pyenv uninstall <仮想環境名>
ex. $ pyenv uninstall sample
```

## 最後に
間違いがあればご指摘ください