I'm trying to deploy an app written in Dash, using gunicorn and nginx. I successfully deployed this same app a few months ago, when I knew what I was doing. I wanted to make some updates and redeploy, but now the deployment wont work, even if I get rid of all my updates. When I run gunicorn, I get an error, Application must be callable
.
I have my project in folder
, which contains unified.py
file, which has my app. In unified.py
, app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
so I'm defining my app variable as app.
I run gunicorn folder.unified:app
and get this error.
However, if I run from folder.unified import app
I get the app object and all the proper attributes, no problem.
I have tried all sorts of variations on the gunicorn call (such as being in the project folder and saying gunicorn
unified:app, being the parent folder and using
gunicorn folder:app,
gunicorn folder:unified`. I know that it can work because it was working before. But for the life of me, I cannot figure out what is going on right now.
I expect it to run similarly to when I run the app with python using python unified.py
.
There was a moment where I thought I solved it because I started getting a different error (saying I couldn't get a .pkl file from another folder), but then I commented out those lines in my unified.py
file and it went back to the same Application must be callable
error!
add server after defining app in main code. (Ex:main.py)
app=dash.Dash(__name__)
server=app.server
then run gunicorn in terminal
gunicorn main:server
if you want to access over LAN and set a port and workers
gunicorn -w 4 -b 0.0.0.0:4000 app_test:server
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With