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

问题描述 投票:4回答:4

我有一个非常简单的烧瓶应用程序(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 ***

而且我不明白为什么。我已经安装了烧瓶(点安装烧瓶)。如果我运行ipython并导入flask,它也可以在其中运行。有任何想法吗?谢谢!

python import flask uwsgi
4个回答
20
投票

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

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

我在virtualenv和uWSGI中也有不同的Python版本。我仍在调查这是否可能引起任何问题。


3
投票

我曾经遇到相同的问题,因为存在版本冲突

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

sudo apt-get install uwsgi

还通过在代码中使用app.run()来检查并运行不带uwsgi的myflaskapp.py

**注意:将由werkzeug服务器。


2
投票

我面临类似的问题,并找到了以下原因:如果我们在虚拟环境中安装了模块(在本例中为Flask),除了使用uWSGI运行Flask应用程序所需的基本说明外,我们可能还需要添加--virtualenv路径。

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

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

0
投票

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

home=/your/virtual/env/path
© www.soinside.com 2019 - 2024. All rights reserved.