【问题标题】:'no module named' error even though I installed module in virtual environment and it works fine on localhost即使我在虚拟环境中安装了模块并且它在 localhost 上运行良好,也出现“没有命名模块”错误
【发布时间】:2016-01-03 20:08:01
【问题描述】:

我最近通过 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: 没有名为 flask.ext.bootstrap 的模块

我不确定它为什么找不到它。就像我说的,当我在本地运行它时,它在我的计算机上运行良好。

我还尝试了“从 flask_bootstrap 导入 Bootstrap”而不是“从 flask.ext.bootstrap 导入 Bootstrap”。两者都在本地工作,但都不能在 DigitalOcean 服务器上工作。

有什么建议吗?

【问题讨论】:

  • 您如何在 DigitalOcean 中运行该应用程序?你确定你使用的是虚拟环境中的 gunicorn 吗?
  • 其实我没有使用 gunicorn。我很确定我错误地添加了gunicorn。我遵循了本教程:digitalocean.com/community/tutorials/… 当我从 VM 上的 virtualenv 运行它时(通过调用'python __init__.py'),应用程序在我访问时工作::5000.
  • 因为您在视觉环境中使用 Python。如果您使用 mod_wsgi,您的 Apache 配置是什么样的?

标签: python flask module python-import


【解决方案1】:

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

【讨论】:

  • 我在我的 .wsgi 文件中添加了 activate_this = '/var/www///virtualenv/bin/activate_this.py' 行。我认为这会涵盖它。
  • 激活文件不应该是sourced吗?我主要使用 virtualenvwrapper 所以不记得了,抱歉。
【解决方案2】:

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

我再次做了这个过程,但这次使用 gunicorn 和 nginx,发现整个过程要容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-29
    • 2021-06-28
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    相关资源
    最近更新 更多