ImportError:使用uwsgi启动flask时没有名为'myapp'的模块

时间:2018-05-03 03:36:43

标签: python flask uwsgi

当我使用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

1 个答案:

答案 0 :(得分:1)

感谢上面的评论,我被带到了正确的轨道上。

我需要的是这样的文件夹结构:

myapp/
     /wsgi.py 
     myapp/
         /__init.py__

我意识到我的父目录是错误的(好吧,它很好,但我的应用程序内部无法看到)。我在设置为父目录和我的模块之间需要一层文件夹,其中 init 声明了应用程序。