2014-11-24 54 views
3

我有一个非常简单的应用程序瓶(myflaskapp.py):没有模块在运行uWSGI

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return "<span style='color:red'>I am app 1</span>" 

如果我运行:

uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app 

我得到以下输出:

Traceback (most recent call last): 
    File "myflaskapp.py", line 1, in <module> 
    from flask import Flask 
ImportError: No module named flask 
unable to load app 0 (mountpoint='') (callable not found or import error) 
*** no app loaded. going in full dynamic mode *** 

我不明白为什么。我已安装烧瓶(点安装烧瓶)。如果我运行ipython并导入烧瓶,它也可以在那里工作。有任何想法吗?谢谢!

+0

您是否使用了的virtualenv?您需要从virtualenv安装/运行uwsgi,或者将uwsgi指向virtualenv。 – davidism 2014-11-24 23:43:40

+0

我不是从virtualenv运行。我将创建一个并提供更多信息。 – agerrr 2014-11-24 23:53:02

+0

我现在正在virtualenv上运行上面的代码(我在里面插入了一个瓶子)。但错误是一样的。 – agerrr 2014-11-25 01:23:52

回答

9

以什么为我工作结束时添加-H /路径/到/的virtualenv到uWSGI命令:

uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app -H /path/to/virtualenv 

我也有在virtualenv中和uWSGI不同Python版本。我仍在调查这是否会导致任何问题。

2

我遇到了同样的问题一次,因为有一些版本冲突

然后而是采用PIP安装uwsgi我做到了我的包管理器 在Ubuntu机,

sudo apt-get install uwsgi 

还要检查并运行myflaskapp.py而不使用uwsgi,即在代码中使用app.run()

*注意:这将由werkzeug服务器执行。

0

我面临类似的问题,并发现如果我们有一个模块安装在虚拟环境中(在这种情况下Flask),我们可能需要添加--virtualenv路径以及运行Flask应用程序所需的基本指令使用uWSGI

所以根据uWSGI文件的指令是:

uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app --virtualenv /path_to_virtualenv 
相关问题