KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

Dash : <waitress>Windows Serverで動かすには?

登録日 :2023/04/09 11:42
カテゴリ :python dash

<メモ1 waitress>
参考になるかわからいが、DjangoをWindows Serverで動かす方法のヒントが下記サイトにあり
https://www.rinsymbol.net/entry/2022/03/13/191249

基本的には、Dashもgunicornで動かしているので同じ手法がつかえるかも。
上記さいとでは"waitress"というものを使ている。
pip install waitress

my_projectをポート8000で起動する

$ waitress-serve X:\any_folder\my_project --port=8000 my_project.wsgi:application

(WindowsPCでテストした結果)
 上記では少々問題ありでした
 https://stackoverflow.com/questions/62788628/modulenotfounderror-no-module-named-fcntl

$ waitress-serve --listen=*:8000 wsgi:application

結果的に上記のコマンドでうまくいきました。
(Flaskでのwaitress利用だが、ヒントになりました)
https://qiita.com/enya314/items/eda0c76842d6b59b4280

ところで、waitressはWindowsの場合ではPowerShellなどで立ち上げる必要がありそうです。
サービス化出来ないかも考えましたが、githubにある実行ファイルを使ってやる方法しか今のところ
調べられていません。

本番環境でのセキュリティルールなどを考えると使いにくいなと思うので、
PowerShellをバックグラウンド実行することで運用するのはどうかな、と考えています。
https://cheshire-wara.com/powershell/ps-cmdlets/system-service/start-process-window/

・waitressインストール
pip3 install waitress


PS C:\Users\user\OneDrive\Desktop\Study\my_study\python\dash> C:\Users\user\AppData\Local\Programs\Python\Python39\Scripts\waitress-serve --listen=*:8000 wsgi:application
INFO:waitress:Serving on http://[::]:8000
INFO:waitress:Serving on http://0.0.0.0:8000


ヒントとして、gunicornはWindowsPCでは使えませんでした。やはりwaitressが必要。
ただし、wsgi.pyファイルや、Dashコードの書き方は全く同じでOKです。