【问题标题】:Django newbie trying to get treeio to work behind apacheDjango新手试图让treeio在apache后面工作
【发布时间】:2011-12-20 15:55:14
【问题描述】:

我似乎和这个人有类似的问题:Django newbie deployment question - ImportError: Could not import settings 'settings' 但我无法确定它的正面或反面。 服务器正在运行 Debian。该应用程序在内部服务器上运行良好,但是在尝试使用 apache + mod_python 时出现以下问题。

  File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 89, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))

ImportError: Could not import settings 'treeio.settings' (Is it on sys.path?): No module named treeio.settings
  1. 项目目录是/var/www/treeio
  2. 所有文件的文件权限为 777(我正在测试是否有任何权限问题)
  3. httpd.conf 的内容

    <Location "/treeio/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE treeio.settings
        PythonOption django.root /treeio
        PythonDebug On
        PythonPath "['/var/www/treeio'] + sys.path"
    </Location>
    

更多信息:

echo $PYTHONPATH
:/var/www/treeio/..:/var/www/treeio

echo $DJANGO_SETTINGS_MODULE
treeio.settings

>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.6/dist-packages/pip-1.0.2-py2.6.egg', '/var/www/treeio', '/var/www', '/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']

帮我stackoverflow,你是我唯一的希望!

【问题讨论】:

    标签: python django apache mod-python


    【解决方案1】:

    您的主要问题是您正在使用 mod-python,尽管明确警告它已被弃用且不应用于新项目。

    但如果你真的坚持使用它,问题就很明显了:你在路径中添加了/var/www/trio,所以trio 中的所有内容都需要直接引用——settings,而不是trio.settings

    【讨论】:

    • 哦,我不知道。你会推荐使用什么来代替 mod-python?另外:我尝试仅引用设置(而不是 treeio.settings),但它没有用。
    • WSGI (docs.djangoproject.com/en/dev/howto/deployment/wsgi) 是一种常用的部署策略。
    • 看起来treeio还不支持wsgi(?)至少我的项目目录中没有任何wsgi文件。
    • 更正,我添加了 wsgi 模块,并且还做了以下操作:pastebin.com/DQKYbFKa 但是现在我得到一个“内部服务器错误”:/
    • &lt;files&gt; 指令在那里做什么?你不需要那个。
    猜你喜欢
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 2018-01-11
    • 2013-12-04
    • 2019-02-06
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    相关资源
    最近更新 更多