uwsgi和flask - 无法导入名称" appl"

时间:2015-09-26 11:03:59

标签: flask virtualenv uwsgi

我使用virtualenv创建了几个服务器,没有任何问题,使用了堆栈nginx - uwsgi - flask。

用当前的一个uwsgi抛出错误无法导入名称" appl"

这是myapp目录结构: / SRV /网络/ MyApp的 + run.py + venv /#virtualenv + myapp /   + init .py   +其他模块/ + logs /

这是/etc/uwsgi/apps-avaliable/myapp.ini

[uwsgi]
# Variables
base = /srv/www/myapp
app = run
# Generic Config
# plugins = http, python
# plugins = python
home = %(base)/venv
pythonpath = %(base)
socket = /tmp/%n.sock
module = %(app)
callable = appl
logto = %(base)/logs/uwsgi_%n.log

这是run.py

#!/usr/bin/env python

from myapp import appl

if __name__ == '__main__':
    DEBUG = True if appl.config['DEBUG'] else False
    appl.run(debug=DEBUG)

appl在myapp / _ init _ .py中定义为Flask()的实例

(下划线只是为了防止SO将它们变成粗体)

我准确地检查了python代码,实际上如果我手动激活虚拟环境并手动执行run.py,一切都像魅力一样,但是uwsgi不断抛出导入错误。

有什么建议我应该多搜索一下?

1 个答案:

答案 0 :(得分:0)

修复它,它只是一个读取权限问题。整个python应用程序可由我的用户读取,但不是由组读取,因此uwsgi无法找到它。

这有点棘手,因为我使用相同的脚本成功部署了很多次,并且从未遇到过权限问题