我有一个非常简单的烧瓶应用程序(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并导入烧瓶它也适用于那里。有任何想法吗?谢谢!
答案 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