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 烧瓶