我有一个非常简单的烧瓶应用程序(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,它也可以在其中运行。有任何想法吗?谢谢!
最后对我有用的是在uWSGI命令中添加-H / path / to / virtualenv:
uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app -H /path/to/virtualenv
我在virtualenv和uWSGI中也有不同的Python版本。我仍在调查这是否可能引起任何问题。
我曾经遇到相同的问题,因为存在版本冲突
然后我没有使用pip来安装uwsgi,而是由包管理器完成的在ubuntu机器上,
sudo apt-get install uwsgi
还通过在代码中使用app.run()来检查并运行不带uwsgi的myflaskapp.py
**注意:将由werkzeug服务器。
我面临类似的问题,并找到了以下原因:如果我们在虚拟环境中安装了模块(在本例中为Flask),除了使用uWSGI运行Flask应用程序所需的基本说明外,我们可能还需要添加--virtualenv路径。
因此,根据uWSGI文档的说明将是:
uwsgi --http-socket :3031 --plugin python --wsgi-file myflaskapp.py --callable app --virtualenv /path_to_virtualenv
您只可以在.ini文件中添加一行:
home=/your/virtual/env/path