【问题标题】:Can't start uWSGI server without virtualenv (ImportError)没有 virtualenv 无法启动 uWSGI 服务器(ImportError)
【发布时间】:2012-08-09 13:40:12
【问题描述】:

我正在运行 django+nginx+uwsgi。出于某种原因,如果不设置 home 选项,我无法启动 uWSGI,指向虚拟环境。每当我在没有它的情况下启动 uWSGI 时,它都会说它找不到模块 django.core.wsgi,就像 python 路径为空一样(但系统范围内安装了 django 1.4)。

我该如何解决?

【问题讨论】:

  • 没有错。您需要使用 home 选项来指定安装 django 的虚拟环境。否则,uwsgi 将在未安装 django 的系统范围内运行。看看uwsgi example
  • @TimmyO'Mahony 如果您仔细查看我的问题,您实际上可以看到,我提到 django 安装在“系统范围内”。
  • 我将对其进行编辑以使其更清晰
  • uwsgi 启动日志会很有帮助
  • 嗨,不,我只是放弃了它并设置了一个虚拟环境。

标签: python django virtualenv wsgi uwsgi


【解决方案1】:

既然我也遇到过这个问题,那就给大家写一个答案吧。 :) 问题是,在以皇帝模式(系统范围)启动时,uwsgi 主进程无法(或不会)为 python(PYTHONPATH)加载正确的环境。 使用 virtualenv 您指定环境。 如果没有它,您需要设置pythonpath 变量,甚至多次指向系统范围的python 路径。

举个例子,我的系统是:

pythonpath = /usr/local/lib/python2.7/dist-packages
pythonpath = /usr/lib/python2.7

(使用 ini 语法)

【讨论】:

  • 我在 MacOS 系统中遇到此错误,但在具有相同配置文件的 centos6 中没有。在配置文件中添加virtualenv后修复它。你能解释一下这种情况吗?运行命令为/path_to_venv/bin/uwsgi -y uwsgi.conf
  • @SiminJie 对不起,我不使用 MacOS。而且我不会将它用作服务器。
猜你喜欢
  • 2015-01-15
  • 1970-01-01
  • 2013-05-09
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 2019-03-28
相关资源
最近更新 更多