■
Big Sur上のApacheで,Dashを動かす
Pythonの実行環境を用意
- pyenvでのインストール
- mod_wsgiのインストール
- dashのインストール
Apache2のインストール・設定
- Homebrewからインストール
- 設定ファイルの修正・作成
-
- スクリプトの作成
- 実行
pythonの実行環境
既存のpyenvで作った環境を使おうとしたら,--enable-shared
オプション付きでインストールしていないとmod_wsgi
をインストールできなかったので
作り直す(3.9.0の例)
$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.0
pyenv global 3.9.0
またはpyenv local 3.9.0
でこの環境をアクティブにしてからmod_wsgiとdashをインストール
$ pip install mod_wsgi
$ pip install dash
Apache2
Homebrewから入れる.
$ brew install apache2
Homebrewで入れたapache2の設定ファイルはデフォルトと異なり,/usr/local/etc/httpd/httpd.conf
になる.
記載内容を得るため,mod_wsgiの設定を確認する
$ mod_wsgi-express module-config LoadFile "/usr/local/var/pyenv/versions/3.9.0/lib/libpython3.9.dylib" LoadModule wsgi_module "/usr/local/var/pyenv/versions/3.9.0/lib/python3.9/site-packages/mod_wsgi/server/mod_wsgi-py39.cpython-39-darwin.so" WSGIPythonHome "/usr/local/var/pyenv/versions/3.9.0"
これを参考にpython.conf
に記入.
LoadModule wsgi_module "/usr/local/var/pyenv/versions/3.9.0/lib/python3.9/site-packages/mod_wsgi/server/mod_wsgi-py39.cpython-39-darwin.so" WSGIPythonHome "/usr/local/var/pyenv/versions/3.9.0" WSGIScriptAlias / /Users/hogehoge/Sites/python/test.wsgi <Directory /Users/hogehoge/Sites/python> options ExecCGI Indexes FollowSymLinks </Directory>
WSGIScriptAlias
が/
でないと"Loading..."と表示されるだけで,所望の結果が得られない.
WSGI,Dashによるスクリプト
Dashを使ったアプリ本体(test.py
)
# -*- coding: utf-8 -*- import dash import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input,Output,State import plotly.graph_objects as go app = dash.Dash(__name__) app.layout = html.Div( children=[ dcc.Graph(figure=go.Figure()), ], ) if __name__=='__main__': app.run_server(debug=True)
WSGIファイル(test.wsgi
)
import sys sys.path.insert(0, '/Users/hogehoge/Sites/python') from test import app application = app.server
flaskなどと違って,application
にはapp
ではなくserver
を対応づける.