uwsgi 和烧瓶 - 无法导入名称“appl”

Posted

技术标签:

【中文标题】uwsgi 和烧瓶 - 无法导入名称“appl”【英文标题】:uwsgi and flask - cannot import name "appl" 【发布时间】:2015-12-24 03:06:24 【问题描述】:

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

当前一个uwsgi抛出错误cannot import name "appl"

这里是 myapp 目录结构: /srv/www/myapp + 运行.py + venv/ # 虚拟环境 + 我的应用程序/ + 初始化.py + 其他模块/ + 日志/

这里是 /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 不断抛出导入错误。

有什么建议我应该搜索更多吗?

【问题讨论】:

目录结构变得不可读。这里我再试一次 /srv/www/myapp 包括run.py、venv/、logs/、myapp/ 包括init.py等模块 【参考方案1】:

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

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

【讨论】:

以上是关于uwsgi 和烧瓶 - 无法导入名称“appl”的主要内容,如果未能解决你的问题,请参考以下文章

nginx中的uwsgi .ini param等价物(烧瓶app上有500个错误)

在 Uwsgi 和 Nginx 上使用 SocketIO 烧瓶

烧瓶(uwsgi)应用程序上的守护进程后台任务

在uWSGI应用程序(烧瓶)中缺少nginx头文件

烧瓶-SocketIO + uWSGI。与 Mule 工人一起发射

将 $ssl_client_s_dn 从 nginx/uwsgi 传递到烧瓶应用程序