feature image

2024年6月30日 | ブログ記事

【競プロ】RyeでOnline-Judge-Toolsを導入する

はじめまして、アルゴ班のComaviusです。最近はDockerで遊んだり書きなれていないフロントエンド周りで苦しんだりしています。

この記事では、online-judge-toolsを導入しようとしたらpipを使うなと怒られた方や他の問題に突き当たった方に向けて、一つの解決策を届けたいと思います。

Ryeとは?

Ryeとは何でしょうか?

Rye is a comprehensive project and package management solution for Python. Born from its creator's desire to establish a one-stop-shop for all Python users, Rye provides a unified experience to install and manages Python installations, pyproject.toml based projects, dependencies and virtualenvs seamlessly. It's designed to accommodate complex projects, monorepos and to facilitate global tool installations.
https://rye.astral.sh/

だそうです。ここに書いてある通り、Ryeは一元的にPythonのプロジェクトを管理してくれるツールです。具体的には、pipを通じたパッケージのインストールやバージョンの異なるPythonインタプリタの管理、venvの生成など様々な機能を持っています。今回特に注目したいのが、「It's designed (中略) to facilitate global tool installations.」の部分で、Ryeはonline-judge-toolsのようなpipを通してインストールできるcliツールに関してもサポートしてくれています。

導入

では実際に導入していきましょう。

Ryeのインストール

まずはRyeをインストールします。これは環境によって手順が違うのでRyeの公式サイトの指示に従ってください。ここでRyeのパスを~/.profile に追加するかを聞かれるので、特にこだわりがない場合は追加することをおすすめします。

Online-Judge-Toolsのインストール

次にRyeを使ってOnline-Judge-Toolsをインストールします。

$ rye install online-judge-tools --python 3.10

ここでPythonのバージョンを指定しないと、oj コマンドがPython3.12の上で実行されてエラーを吐きます。

$ oj --version

でOnline-Judge-Toolsがインストールされていることを確認しましょう。

余談

PythonのプロジェクトをRyeで管理すると、環境による挙動の変化を予防でき、requirements.txt より読みやすいpyprojects.toml を使って宣言的にパッケージを指定できます。

終わりに

この記事がみなさんの役に立てば幸いです。どうかよい競プロライフをお過ごしください。

comavius icon
この記事を書いた人
comavius

algoとheurとLinux

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年7月15日
2023 春ハッカソン 06班 stamProlog
H1rono_K icon H1rono_K
2023年7月13日
アルゴリズム班はやとき王選手権「競(けい)プロ」を開催しました!
abap34 icon abap34
2023年3月30日
みやぎハッカソン2023に参加しました(ずんだ食べ食べ委員会)
mehm8128 icon mehm8128
2022年10月11日
アルゴリズム班にKaggle部を設立し、初心者向けデータ分析体験会を開催しました!
abap34 icon abap34
2021年4月18日
ベズー係数とN項の拡張ユークリッドの互除法
0214sh7 icon 0214sh7
2023年6月27日
2023 春ハッカソン 20班 『進捗が木になる~』
mehm8128 icon mehm8128
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記