LoginSignup
3
1

More than 1 year has passed since last update.

Poetryでinstallするpackageのversionを環境ごとに変更する方法

Last updated at Posted at 2022-08-25

結論

Poetryのenvironment-markersという機能を使いましょう。

直面した問題

pyheifというpackageをpoetryを使ってインストールしたいのですが、どうやら現時点(2022/8/25)ではm1 macだと以下エラーが出て動いてくれないようです。

EnvCommandError
'libheif/heif.h' file not found

そこでpyheifのissueにあるコメントの通り、m1-support修正のパッチが当たったversionを指定してpoetry installすると次はm1 mac環境では動いたのですがEC2環境でpoetry installできなくなりました。

解決法

この問題を解決するためpoetryのenvironment-markersという機能を使い、m1 mac環境でのみ修正が当たったversionを指定するよう以下のようにpyproject.tomlを書き換えました。

pyproject.toml
pyheif= [
    {version = "^0.5.1", markers = "sys_platform != 'darwin'"},
    {git = "https://github.com/guillaumegenthial/pyheif.git", rev = "m1-support", markers = "sys_platform == 'darwin'"} # For m1 mac support. ref: https://github.com/carsales/pyheif/pull/45#issuecomment-1130056328
]

これで無事にEC2およびlocalのm1 mac環境でも無事poetry installが通るようになりました!

poetryでは他にも複雑な条件でinstallするパッケージを指定できるみたいです、条件によってinstallするpackageのバージョンを変更したいなどありましたらこの公式ページを参考にしてみて下さい。

こちら会社の先輩(@soymsk)に教えていただきました👍

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1