小ネタです。GitHub上からcloneしたリポジトリなど、あらかじめ用意されたrequirements.txtからライブラリをインストールしたい場合があります。
結論のコマンド部分だけ知りたい方は下記をお試しください。
# venvをアクティベート(既に存在する場合)
source .venv/bin/activate
# requirements.txtの中身を読み込み展開して一括インストール
$ rye add $(cat requirements.txt)目次:
- 通常のrequirements.txtを利用したpipでの一括ライブラリインストール方法
- venvをアクティベートしてからpipで一括インストールしても動作せず
- requirements.txtの内容を展開して、通常のrye addで一括インストール
- エラーが発生した場合はrequirements.txtの中身をチェックしてみる
通常のrequirements.txtを利用したpipでの一括ライブラリインストール方法
通常、pipを利用したrequirementx.txtからの一括ライブラリインストールは下記のように行われます。
pip install -r requirements.txtしかし、requirements.txtはpip環境下で利用されるもので、ryeでは直接利用することはできません。
venvをアクティベートしてからpipで一括インストールしても動作せず
調べると「ryeはvenvをラップしているので、venvをアクティベートしてからpipでインストールすればよい」との記述がありましたが、私の環境では下記リンク先の方法はうまく動作しませんでした。
Pythonのパッケージ管理ツールryeでrequirements.txtを読み込む方法 | 某
以下のように失敗してしまいます。
requirements.txtの内容を展開して、通常のrye addで一括インストール
考えてみれば、やりたいことは単に「requirements.txtに記載のあるライブラリをrye環境下でインストールさせたい」ということ。
そこで、通常のryeでのインストール方法であるrye addを用いて、requirements.txtの内容を展開させたうえで一括インストールします。
# Ryeプロジェクトを初期化(requirements.tomlなど設置がない場合)
$ rye init
# venv設置がある場合、アクティベート
source .venv/bin/activate
# requirements.txtの中身を読み込み展開して一括インストール
$ rye add $(cat requirements.txt)
# インストールされたライブラリ一覧を確認
$ rye list
# 同期
$ rye syncこちらでうまくryeにてインストールさせることができました。お困りの方は試してみてください。
エラーが発生した場合はrequirements.txtの中身をチェックしてみる
以下のようなエラーが発生してしまうことがあります。
error: Expected package name starting with an alphanumeric character, found '>'
>=
^上記エラーの場合は、指定するバージョンの演算子の前後に半角スペースが入っていたため、シェルによってうまく展開ができなかったようです。
そのため、以下のように半角スペースを削除し詰めてあげるとうまくrye addによってインストールさせることができました。
# livekit >= 0.18.2
livekit>=0.18.2
livekit-agents>=0.12.1
livekit-plugins-openai>=0.10.9
python-dotenv~=1.0エラーが発生した場合はrequirements.txtの中身をチェックするなどしてみましょう。
Category: 開発・プログラミング | エンジニアリング
Tags: