Open4

asdf+PoetryでPythonの開発環境を構築する

fastsnowyfastsnowy

使用するもの

  • asdf
  • Poetry

採用理由

  • Anacondaは使いたくない
    • conda系は何かと不具合が起きやすい&pipと混在すると意味わからないことに
    • というか最初からpipでいい
  • requirements.txtからインストールしても結局依存関係がごちゃごちゃに
  • Poetryで依存関係を任せる
    • javascriptだとnpmとかpnpmとかあるしpythonでもpoetryで依存関係まかせたほうがいいかも
  • asdfでバージョン管理を楽に
fastsnowyfastsnowy

実際の使用方法

先に使い方を書いときます

# 作業するディレクトリの作成
mkdir workspace
cd workspace
# pythonのバージョンの設定
# asdf install python <使用するバージョン>
asdf local python <使用するバージョン>
# poetryの初期化
poetry init
# パッケージのインストール
poetry add <packagename>
# 仮想環境
poetry shell
# 実行
python <実行するファイル名>
fastsnowyfastsnowy

asdfの設定

asdf

公式サイトに従いインストール
https://asdf-vm.com/

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3

pathを通す

今回で一番面倒くさいのはここだけ

zshを使っている場合は~/.zshrcに変えてください

echo ". '$HOME/.asdf/asdf.sh'" > ~/.bashrc

補完などの設定は公式サイトを確認して
https://asdf-vm.com/guide/getting-started.html#_3-install-asdf

プラグインのインストール

使用する言語のプラグインをインストールする。
今回使わないがnode.jsなどのバージョン管理も出来る(便利!)

python

asdf plugin-add python

poetry

asdf plugin-add poetry

Pythonのインストール

例えばpython3.9系をインストールしたい時

asdf install python 3.9.13

また3.9.13の部分をlatestにすると最新版がインストールされる

ちなみにminicondaanacondaなどもインストール出来る

グローバルで使用

asdf global python 3.9.13

とすればどのディレクトリでもグローバルで指定したバージョンになる(python -Vで確認)

ローカルで使用

カレントディレクトリ以下でバージョンを指定する場合はasdf localを使う←これでプロジェクトごとにバージョンを変える!

asdf local python 3.9.13

とすると.tool-versionsというファイルが生成され、そのディレクトリ以下では指定したバージョンになる

fastsnowyfastsnowy

Poetryのインストール

Poetryの最新版をインストールする

asdf install poetry latest

poetyは全体の設定なのでglobalでインストール

asdf global poetry latest

これでどこでもpoetryコマンドが使えるようになった(はず)
またデフォルトだと仮想環境が別の場所に保存されるのでプロジェクト配下に.venvを作るように設定

poetry config virtualenvs.in-project true

仮想環境の構築

最初から構築する場合

  1. poetry initをする
  2. poetry addで使用するライブラリを追加
  3. poetry shellで仮想環境に入る→実行 or poetry run python <実行するファイル名>

あとはVSCodeで開発をして入れば勝手に環境を読み込んでくれるので変なことしなくてもOK
他のIDE使ってる人は知りません