运行uWSGI时没有名为flask的模块

时间:2014-11-24 23:40:28

标签: python import flask uwsgi

我有一个非常简单的烧瓶应用程序(myflaskapp.py):

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 ***

我不明白为什么。我安装了烧瓶(pip安装烧瓶)。如果我运行ipython并导入烧瓶它也适用于那里。有任何想法吗?谢谢!

4 个答案:

答案 0 :(得分:15)

最后对我有用的是在uWSGI命令中添加-H / path / to / virtualenv:

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

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

答案 1 :(得分:3)

我遇到过同样的问题,因为存在一些版本冲突

然后我没有使用pip来安装uwsgi,而是由我的包管理器完成的 在ubuntu机器上,

sudo apt-get install uwsgi

在代码中使用app.run()检查并运行没有uwsgi的myflaskapp.py

*注意:那将是werkzeug服务器。

答案 2 :(得分:0)

我遇到了类似的问题,发现如果我们在虚拟环境中安装了模块(在本例中为Flask),我们可能需要添加--virtualenv路径以及运行Flask应用程序所需的基本指令uWSGI

因此,根据uWSGI文档的说明将是:

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

答案 3 :(得分:-1)

您只需在.ini文件中添加一行即可:

home=/your/virtual/env/path