'no module named' 错误,即使我在虚拟环境中安装了模块并且它在本地主机上工作正常

'no module named' error even though I installed module in virtual environment and it works fine on localhost

我最近通过 DigitalOcean 获得了一个服务器,我正在玩 Flask 应用程序。

当我 运行 在本地使用该应用程序时,该应用程序在我的计算机上运行良好。但是当托管在 DigitalOcean 上时它不起作用。两个虚拟环境相同。

当我执行 'pip freeze' 时,输出是:

coverage==4.0.3
dominate==2.1.16
Flask==0.10.1
Flask-Bootstrap==3.3.5.7
Flask-Login==0.3.2
Flask-SQLAlchemy==2.1
Flask-WTF==0.12
gunicorn==19.4.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
SQLAlchemy==1.0.11
visitor==0.1.2
Werkzeug==0.11.3
wheel==0.24.0
WTForms==2.1

但是当我查看 Apache 错误日志时出现错误:

ImportError: No module named flask.ext.bootstrap

我不确定为什么找不到它。就像我说的,当我在本地 运行 它在我的电脑上工作正常。

我也试过 'from flask_bootstrap import Bootstrap' 而不是 'from flask.ext.bootstrap import Bootstrap'。两者都在本地工作,但都不在 DigitalOcean 服务器上工作。

有什么建议吗?

请检查您是如何配置 Apache 的。它可能使用系统默认 Python 而没有你的虚拟环境。

当使用 digitalocean 制作 Flask 应用程序时,本教程比我上面发布的教程更新和简单得多: https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-14-04

我又做了一遍流程,不过这次使用了gunicorn和nginx,发现整个流程简单多了。