🦩

今更ながらDataScienceライクな研究の環境構築をいちからつくっていくぅ

2024/02/27に公開

研究でPythonを使って久しい, 特に個々数年はニューラルネットワークの研究をしている
今までは自分ひとりで完結していたが, これからは複数人での作業が増えることもあり, 環境構築をきちんとしようと思い立った

少し調べるといろいろと最近は便利なものも増えてきていて, 自分への備忘録も兼ねてイチからやっていく

この記事シリーズでは

  • 仮想環境周り
  • レポジトリー周り
  • ニューラルネットワークの学習周り
    などなどをつらつらと書いていきたい

まずは, 仮想環境まわり

pipx

https://pipx.pypa.io/stable/
pipと似ていますが, pythonで走るアプリケーション(flake8とか)をインストールするためのpipだと思ってください
インストールは公式にもあるように(Linuxでは)

sudo apt update
sudo apt install pipx
pipx ensurepath

のように行います.

pipxでインストールしたコマンドはデフォルトでは$HOME/.local/pipx/venvsに仮想環境としてインストールされます
このpipx自体をpipxで管理していく方法でインストールしていきます

python3 -m venv $HOME/.local/pipx/venvs/pipx

仮想環境に入って

. $HOME/.local/pipx/venvs/pipx/bin/activate
pip install -U pip setuptools
pip install pipx

この状態でpipx listしても, metadataがないと怒られるので

pipx install --force pipx

--forceをつけて再度インストールします

Installing to existing venv 'pipx'
⚠️  Note: pipx was already on your PATH at あなたのPATH
  installed package pipx 1.4.3, installed using Python 3.8.10
  These apps are now globally available
    - pipx
done! ✨ 🌟 ✨

(あなたのPATHは環境依存のPATH)
とインストールできます

pipx ensurepath

としてPATHを通しておきます(すでに通っている場合でもやっていい)
仮想環境から抜けて確認しておきます

venvs are in XXX
apps are exposed on your $PATH at XXX
manual pages are exposed at XXX
   package pipx 1.4.3, installed using Python 3.8.10
    - pipx

となって問題なさそうです

Rye

'Pythonのエコシステムは本当に複雑である'
このようなPythonのエコシステムを統一したいという気持ちで生まれた、らしい
Flaskなどで有名な@mitsuhiko氏が作者である。

https://github.com/mitsuhiko/rye

Rust製なのでPythonへの依存関係がないのがメリットで嬉しい.
ドキュメントはこっち

https://rye-up.com

Ryeを導入する

とりあえず導入してみる, 公式はこっち

curl -sSf https://rye-up.com/get | bash
echo 'source "$HOME/.rye/env"' >> ~/.zshrc
source "$HOME/.rye/env"

バージョンの管理

Ryeではpythonのバージョンと仮想環境も管理してくれる

rye pin 3.11

とすると, .python-versionというファイルで管理される.
この時点では仮想環境自体はインストールされない.
(rye syncでセットアップされる)

ライブラリの導入

ryeでは, 簡単にrye addすれば基本的にはOK, pyproject.tomlに追加されていく

# 開発用ツール
rye add --dev black
# 必要なライブラリはなにもつけずに
rye add numpy
# インストールはここでされる
rye sync

その他

他にも,

# このようにしてもOK
rye add "flask>=2.0"
# remove はシンプルに
rye remove flask

virtualenvのコンテキストで実行可能ファイルを実行するには、runコマンドを使う。例えばblackを使いたい場合は、次のように追加して実行する

rye add black
rye sync
rye run black

仮想環境を有効にするには, 一般的な方法で

# 仮想環境にはいる
. .venv/bin/activate
# 出る
deactivate

このように非常にシンプルかつ直感的にプロジェクトを作ることができる

Discussion