Apache2 mod_wsgi 未导入 Python eggs

Apache2 mod_wsgi 未导入 Python eggs

我正在 Debian 中为 Django 设置 Apache2 和 mod_wsgi,但发现了问题。首先,这些是我的目录:

/webapps/lib/python2.6/site-packages # python eggs
/webapps/lib/python2.6/ # python libraries
/webapps/myproject.wsgi # wsgi script
/webapps/myproject/ # django project

这是目录/webapps/lib/python2.6(权限为 777):

.
├── django
│   ├── bin
│   ├── conf
│   ├── ...
│   └── views
└── site-packages
    ├── easy-install.pth
    ├── mongoengine-0.5.3-py2.6.egg
    ├── pymongo-2.1-py2.6-linux-x86_64.egg
    └── site.py

httpd.conf有这个:

WSGIScriptAlias / /webapps/myproject.wsgi
WSGIPythonEggs /webapps/lib/python2.6/site-packages/

最后是myproject.wsgi

import sys
sys.path.insert(0, '/webapps/lib/python2.6/site-packages')
sys.path.insert(0, '/webapps/lib/python2.6')
sys.path.insert(0, '/webapps/myproject')

.. Nothing important

# I tried 2 lines above as well, but nothing
#import os
#os.environ["PYTHON_EGG_CACHE"] = "/webapps/lib/python2.6/site-packages"

from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()

# This for trying if system reads eggs
try:
    import mongoengine
except Exception as e:
    raise ImportError(str(e) + ". " + str(sys.path))

当我重新启动 Apache 并尝试访问任何网页时,出现错误 500,日志中显示以下内容:

[2012 年 1 月 4 日,星期三 18:18:12] [错误] [客户端 217.217.164.22] ImportError:没有名为 mongoengine 的模块。['/webapps/myproject'、'/webapps/lib/python2.6'、'/webapps/lib/python2.6/site-packages'、'/usr/lib/python2.6'、'/usr/lib/python2.6/plat-linux2'、'/usr/lib/python2.6/lib-tk'、'/usr/lib/python2.6/lib-old'、'/usr/lib/python2.6/lib-dynload'、'/usr/local/lib/python2.6/dist-packages'、'/usr/lib/python2.6/dist-packages'、'/usr/lib/pymodules/python2.6']

所以你可以看到 django 导入成功了,但是 egg 没有导入。但是我找不到其他导入方法。为什么 egg 没有导入?

谢谢。

答案1

我刚刚找到了解决方案。一切都很完美,即使我重新启动了 Apache,它还是一直抛出相同的错误。由于 Apache 正在运行许多进程,因此关键是执行 a 然后killall httpd重新启动服务。某种缓存或进程存在错误数据,因此无法正常工作。

相关内容