当我使用uwsgi在我的nginx / ubuntu服务器上加载我的Flask应用程序时,我得到了这个跟踪:
ImportError: No module named 'myapp'
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 ***
我的结构是这样的:
myapp/
/__init__.py
/project.ini
/wsgi.py
wsgi.py
from myapp import app
if __name__ == "__main__":
app.run(debug=True)
project.ini
[uwsgi]
module = wsgi:app
master = true
processes = 5
socket = myapp.sock
chmod-socket = 660
vacuum = true
logto = /var/www/myapp/logs/%n.log
die-on-term = true
我尝试在我的ini文件中添加callable = app
。我已经尝试将应用程序别名作为wsgi.py中的应用程序。
我在S.O.上看到了很多问题。在这个主题上没有任何帮助。有什么想法吗?
修改:
与上述结果相同。
EDIT2:
/etc/systemmd/system/myapp.service
[Unit]
Description=uWSGI instance to serve myapp
After=network.target
[Service]
User=egr
Group=www-data
WorkingDirectory=/var/www/myapp
Environment="PATH=/var/www/myapp/klenv/bin"
ExecStart=/var/www/myapp/klenv/bin/uwsgi --ini project.ini
[Install]
WantedBy=multi-user.target
答案 0 :(得分:1)
感谢上面的评论,我被带到了正确的轨道上。
我需要的是这样的文件夹结构:
myapp/
/wsgi.py
myapp/
/__init.py__
我意识到我的父目录是错误的(好吧,它很好,但我的应用程序内部无法看到)。我在设置为父目录和我的模块之间需要一层文件夹,其中 init 声明了应用程序。