背景
local windows で開発時は特に問題なかったが、
Azure に deploy したら何故か動かない。
で、調べたら、pywin32 がねーよって怒られていた。
そりゃそうだよね、win32 ですから!
で、その対策の備忘録
環境
local Windows11 powershell
az/azd cli
Azure App Service Linux
Python 3.11
対応策
windows でのみ動くように requirements.in を定義する
以下のように定義してやることで、platform 条件で install させることが可能
requirements.in の例
pywin32; sys.platform == 'win32'
依存関係処理した上で、条件追記してくれるので、非常に助かる
requirements.txt 出力例
pywin32==306 ; sys.platform == 'win32'
# via
# -r requirements.in
他にも Python version なんかも指定できる。
詳細は以下で
ネット記事だと、古い書き方?が記載されてたりするので、公式を確認しましょう
ex.) sys_platform == "win32"
これで、動かねーって少し悩みました
あとがき
当初、これしたと気、requirements.txt にしか書けないと思って、
自動生成されると上書きで困るーとか思ったけど、in に書いても上手くいってめっちゃ助かった