横浜国立大学理工学部建築都市環境系学科卒
一級鉄筋技能士
Pythonの開発環境を構築する際、pythonのバージョン管理、仮想環境の構築、pythonのバージョンに合ったライブラリをpipインストール、と設定が煩雑になりがちです。
Ryeを使えばこれらの3つの設定が一発でできるようになります。(これは便利!)
この記事では、初心者に優しい「Rye」を使った開発環境の構築について解説します。
目次
Ryeについて
Pythonの開発環境を構築する過程は、特に初心者にとっては複雑で時間がかかるものです。
Pythonのバージョン管理から仮想環境の構築、適切なライブラリの選定とインストールまで、多くのステップが必要とされます。
このような煩雑なプロセスは、学習の障壁となり得ます。
ここで、「Rye」の出番です。
Ryeは、これらの一連のプロセスを簡潔に一括処理できる、初心者に優しいツールとして登場しました。
詳しく見ていきましょう!
初心者がつまずくのは環境の準備
例えば、「ワードクラウド python」と検索して、Pythonを使ったワードクラウドの作成方法について調べます。
多くの記事では、ライブラリのインストールが手順の最初に記載されています。
1 2 3 4 5 |
# 例 !pip install -q mecab-python3 !pip install -q ipadic !pip install -q japanize-matplotlib !apt-get -yq install fonts-ipafont-gothic |
しかし、これらのライブラリをインストールする前に、まずPythonのインストール、Pythonのバージョンの確認、適切なバージョンのPythonに対応した仮想環境(venv)の構築、そしてその環境で使用するライブラリの選定とインストールが必要です。
一般的な記事では、このような準備作業が省略されていることが多く、これが初心者を混乱させる原因になっています。
〇一般的なPython開発環境の手順
1.Pythonのインストール
2.Pythonのバージョン確認(pyenvでバージョンを管理)
3.Pythonのバージョンに応じた仮想環境(venv)の構築
4.仮想環境をactivate
5.Pythonのバージョンに合ったライブラリの選定
6.pipでライブラリをインストール
「Rye」というツールを使用すると、Pythonの仮想環境の構築、Pythonのバージョンに適したライブラリの選定とインストールを自動で行うことができます。
〇Ryeを使ったPython開発環境の手順
1.RyeでPythonのバージョンを指定してPythonをインストール
2.Rye add コマンドでライブラリをインストール
3.Rye runで実行
インストール方法(Linuxの場合)
さあ、Ryeをインストールしてみましょう!
1 2 |
#質問を回避するコマンド curl -sSf https://rye-up.com/get | RYE_VERSION="0.4.0" RYE_INSTALL_OPTION="--yes" bash |
「uv(fast,recommended)」の方法を指定してインストールを続けます。
.profile
.profileはUnixやUnix系オペレーティングシステム上で使用される、ユーザー固有のシェル起動スクリプトの一つです。
このファイルは、ログインシェルが開始される際に実行されます。
1 |
should the installer add Rye to PATH via .profile ? |
この質問に対しては、「yes」にすると.profileの一番最後にホームディレクトリ内の.rye/envファイルを読み込んで実行するコードが追加されます。
1 |
. "$HOME/.rye/env" |
シェルで「rye」コマンドを打ち、次の表示が出てくればインストール完了です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
❯ rye An Experimental Package Management Solution for Python Usage: rye [OPTIONS] [COMMAND] Commands: add Adds a Python package to this project build Builds a package for distribution config Reads or modifies the global `config.toml` file fetch Fetches a Python interpreter for the local machine. This is an alias of `rye toolchain fetch` fmt Run the code formatter on the project init Initialize a new or existing Python project with Rye install Installs a package as global tool. This is an alias of `rye tools install` lock Updates the lockfiles without installing dependencies lint Run the linter on the project make-req Builds and prints a PEP 508 requirement string from parts pin Pins a Python version to this project publish Publish packages to a package repository remove Removes a package from this project run Runs a command installed into this package show Prints the current state of the project sync Updates the virtualenv based on the pyproject.toml test Run the tests on the project toolchain Helper utility to manage Python toolchains tools Helper utility to manage global tools self Rye self management uninstall Uninstalls a global tool. This is an alias of `rye tools uninstall` version Get or set project version list Prints the currently installed packages help Print this message or the help of the given subcommand(s) Options: --env-file <ENV_FILE> Load one or more .env files --version Print the version -h, --help Print help |
Ryeを使ってみよう
では、実際にRyeを使ってみましょう!
Rye initコマンド
Rye initコマンドで新しいプロジェクトを含む新しいフォルダーを作成します。
1 2 3 |
❯ rye init stpj success: Initialized project in /home/itoiy/stpj Run `rye sync` to get started |
Rye addコマンド
Rye addコマンドで必要なライブラリをプロジェクトに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
❯ rye add "streamlit>=1.32.2" Added streamlit>=1.32.2 as regular dependency Reusing already existing virtualenv Generating production lockfile: /home/itoiy/stpj/requirements.lock Generating dev lockfile: /home/itoiy/stpj/requirements-dev.lock Installing dependencies Built file:///home/itoiy/stpj Built 1 editable in 195ms Resolved 1 package in 1ms Downloaded 1 package in 22.02s Uninstalled 1 package in 0.22ms Installed 42 packages in 68ms + altair==5.2.0 + attrs==23.2.0 + blinker==1.7.0 + cachetools==5.3.3 + certifi==2024.2.2 + charset-normalizer==3.3.2 + click==8.1.7 + gitdb==4.0.11 + gitpython==3.1.42 + idna==3.6 + jinja2==3.1.3 + jsonschema==4.21.1 + jsonschema-specifications==2023.12.1 + markdown-it-py==3.0.0 + markupsafe==2.1.5 + mdurl==0.1.2 + numpy==1.26.4 + packaging==23.2 + pandas==2.2.1 + pillow==10.2.0 + protobuf==4.25.3 + pyarrow==15.0.2 + pydeck==0.8.0 + pygments==2.17.2 + python-dateutil==2.9.0.post0 + pytz==2024.1 + referencing==0.34.0 + requests==2.31.0 + rich==13.7.1 + rpds-py==0.18.0 + six==1.16.0 + smmap==5.0.1 - stpj==0.1.0 (from file:///home/itoiy/stpj) + stpj==0.1.0 (from file:///home/itoiy/stpj) + streamlit==1.32.2 + tenacity==8.2.3 + toml==0.10.2 + toolz==0.12.1 + tornado==6.4 + typing-extensions==4.10.0 + tzdata==2024.1 + urllib3==2.2.1 + watchdog==4.0.0 Done! |
Rye syncコマンド
Rye syncコマンドで同期します。
1 2 3 4 5 6 7 8 9 |
❯ rye sync Reusing already existing virtualenv Generating production lockfile: /home/itoiy/stpj/requirements.lock Generating dev lockfile: /home/itoiy/stpj/requirements-dev.lock Installing dependencies Built file:///home/itoiy/stpj Built 1 editable in 193ms Installed 1 package in 0.34ms + stpj==0.1.0 (from file:///home/itoiy/stpj) Done! |
Rye runコマンド
Rye runコマンドでPython環境内でファイルを実行します。
1 2 3 4 5 6 |
❯ rye run streamlit run app.py You can now view your Streamlit app in your browser. Local URL: http://localhost:8501 Network URL: http://----------- |
Ryeを使ってワードクラウドを動かしてみよう
例として、ワードクラウドをRyeで動かしてみました。
ワードクラウドで文章を視覚化
※注意※
あくまで個人利用が推奨されているようです。
まとめ
Ryeが提供するコマンドは、開発環境の構築からライブラリの管理、アプリケーションの実行に至るまで、Python開発のあらゆる面で非常に便利です。
このシンプルさと効率性は、初心者だけでなく、経験豊富な開発者にとっても魅力的なはずです。
Python開発を始める際には、是非Ryeの使用を検討してみてください。