I would like to serve a simple Flask App with uWSGI, in order to have a Simple uWSGI deployment with 4 processes (and hence respond to multiple parallel requests).
I created the "simple_app.py" file containing the application:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello World!"
if __name__ == '__main__':
app.run()
And a "uwsgi.ini" configuration file:
[uwsgi]
socket = 0.0.0.0:5000
protocol = http
module = simple_app:app
threads = 1
processes = 4
However, when I try to start the server on my local Macbook machine with the Terminal command uwsgi uwsgi.ini
, it raises the follwing import error:
*** Operational MODE: preforking ***
Traceback (most recent call last):
File "./simple_app.py", line 9, in <module>
from flask import Flask
File "/anaconda3/lib/python3.7/site-packages/flask/__init__.py", line 14, in <module>
from jinja2 import escape
File "/anaconda3/lib/python3.7/site-packages/jinja2/__init__.py", line 33, in <module>
from jinja2.environment import Environment, Template
File "/anaconda3/lib/python3.7/site-packages/jinja2/environment.py", line 15, in <module>
from jinja2 import nodes
File "/anaconda3/lib/python3.7/site-packages/jinja2/nodes.py", line 19, in <module>
from jinja2.utils import Markup
File "/anaconda3/lib/python3.7/site-packages/jinja2/utils.py", line 16, in <module>
from jinja2._compat import text_type, string_types, implements_iterator, \
File "/anaconda3/lib/python3.7/site-packages/jinja2/_compat.py", line 31, in <module>
import pickle
File "/anaconda3/lib/python3.7/pickle.py", line 33, in <module>
from struct import pack, unpack
File "/anaconda3/lib/python3.7/struct.py", line 13, in <module>
from _struct import *
ImportError: dlopen(/anaconda3/lib/python3.7/lib-dynload/_struct.cpython-37m-darwin.so, 2): Symbol not found: _PyByteArray_Type
Referenced from: /anaconda3/lib/python3.7/lib-dynload/_struct.cpython-37m-darwin.so
Expected in: flat namespace
in /anaconda3/lib/python3.7/lib-dynload/_struct.cpython-37m-darwin.so
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (pid: 53858, cores: 1)
spawned uWSGI worker 2 (pid: 53859, cores: 1)
spawned uWSGI worker 3 (pid: 53860, cores: 1)
spawned uWSGI worker 4 (pid: 53861, cores: 1)
Both Files are in the same folder of my system; how can I correctly launch the app and receive multiple parallel requests?