ImportError: No module named flask; only when running from uWSGI

ImportError: No module named flask; only when running from uWSGI

正如标题所说,我可以通过终端 运行 这个简单的 python/flask 应用程序就好了:

$ python /srv/www/cc/hello.py
 * Running on http://0.0.0.0:8080/

但是当我使用 uwsgi 时,我在我的日志文件中得到以下内容:

Traceback (most recent call last):
  File "/srv/www/cc/hello.py", line 1, in <module>
    from flask import Flask
ImportError: No module named flask

这里的其他线程指出潜在的版本差异,python 是罪魁祸首,但我已经通过以下验证所有内容都使用相同的版本:

$ python -c 'import sys; print sys.version'
2.7.6

在我的 emperor.log 和 cc_uwsgi.log 文件中看到 Python 版本:2.7.6

还有人有其他想法吗?

编辑:我什至可以在我的 python 路径中看到烧瓶的正确路径...以及导入它就好了。

$ python -c 'import sys; print sys.path'
[..., '/home/ccadmin/.local/lib/python2.7/site-packages', ...]
$ python -d 'from flask import Flask'
$

通常像这样的导入错误是由于没有正确设置PYTHONPATH造成的。您能否将 PYTHONPATH env 变量设置为指向正确的位置并尝试。

原来它就像在我的 uwsgi.ini 配置中声明站点包的路径一样简单,即使它已经显示在我的路径中。不知道为什么又需要它,但它是:

[uwsgi]
pythonpath = /home/ccadmin/.local/lib/python2.7/site-packages/