Open4
asdf+PoetryでPythonの開発環境を構築する
使用するもの
- asdf
- Poetry
採用理由
- Anacondaは使いたくない
-
conda
系は何かと不具合が起きやすい&pip
と混在すると意味わからないことに - というか最初から
pip
でいい
-
-
requirements.txt
からインストールしても結局依存関係がごちゃごちゃに - Poetryで依存関係を任せる
- javascriptだとnpmとかpnpmとかあるしpythonでもpoetryで依存関係まかせたほうがいいかも
- asdfでバージョン管理を楽に
実際の使用方法
先に使い方を書いときます
# 作業するディレクトリの作成
mkdir workspace
cd workspace
# pythonのバージョンの設定
# asdf install python <使用するバージョン>
asdf local python <使用するバージョン>
# poetryの初期化
poetry init
# パッケージのインストール
poetry add <packagename>
# 仮想環境
poetry shell
# 実行
python <実行するファイル名>
asdfの設定
asdf
公式サイトに従いインストール
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3
pathを通す
今回で一番面倒くさいのはここだけ
zshを使っている場合は~/.zshrc
に変えてください
echo ". '$HOME/.asdf/asdf.sh'" > ~/.bashrc
補完などの設定は公式サイトを確認して
プラグインのインストール
使用する言語のプラグインをインストールする。
今回使わないが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にすると最新版がインストールされる
ちなみにminiconda
やanaconda
などもインストール出来る
グローバルで使用
asdf global python 3.9.13
とすればどのディレクトリでもグローバルで指定したバージョンになる(python -V
で確認)
ローカルで使用
カレントディレクトリ以下でバージョンを指定する場合はasdf local
を使う←これでプロジェクトごとにバージョンを変える!
asdf local python 3.9.13
とすると.tool-versions
というファイルが生成され、そのディレクトリ以下では指定したバージョンになる
Poetryのインストール
Poetryの最新版をインストールする
asdf install poetry latest
poetyは全体の設定なのでglobalでインストール
asdf global poetry latest
これでどこでもpoetry
コマンドが使えるようになった(はず)
またデフォルトだと仮想環境が別の場所に保存されるのでプロジェクト配下に.venv
を作るように設定
poetry config virtualenvs.in-project true
仮想環境の構築
最初から構築する場合
-
poetry init
をする -
poetry add
で使用するライブラリを追加 -
poetry shell
で仮想環境に入る→実行 orpoetry run python <実行するファイル名>
あとはVSCodeで開発をして入れば勝手に環境を読み込んでくれるので変なことしなくてもOK
他のIDE使ってる人は知りません