【问题标题】:Django Deployment: ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named settings.pyDjango 部署:ImportError:无法导入设置“settings.py”(是否在 sys.path 上?):没有名为 settings.py 的模块
【发布时间】:2011-08-18 10:05:33
【问题描述】:

大家好,感谢您抽出宝贵时间查看我的问题。

我是 Python 的新手,以为我有 php/mysql 方面的经验。

我刚刚收到了一个 django 站点的代码库,并要求我在服务器上启动并运行它。 我已经能够运行 syncdb 并进行迁移。 现在我试图在浏览器中导航到我的网站,这是我得到的错误:

ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named settings.py

我的 apach2.conf python 配置如下所示:

<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonOption django.root /myproject
SetEnv DJANGO_SETTINGS_MODULE settings.py
PythonPath "['/home/ubuntu/envs/live/','/home/ubuntu/envs/live/myproject','/home/ubuntu/envs/live/myproject/apps', '/home/ubuntu/envs/stage/myproject', '/home/ubuntu/envs/', '/var/www'] + sys.path"
PythonDebug on

settings.py 文件位于目录/home/ubuntu/venvs/live/myproject 中。

有人可以帮我吗?

谢谢!

【问题讨论】:

标签: python deployment importerror sys.path


【解决方案1】:

应该只是:

SetEnv DJANGO_SETTINGS_MODULE settings

没有“.py”。即,它是 Python 模块路径,而不是文件名。

请注意 mod_python 正式是一个死项目。 Django 中的支持已被弃用。您应该寻找替代方案而不是 mod_python 来托管 Django。

【讨论】:

    【解决方案2】:

    我认为你应该颠倒以下几行的顺序:

    SetEnv DJANGO_SETTINGS_MODULE settings.py
    PythonPath "['/home/ubuntu/envs/live/','/home/ubuntu/envs/live/myproject','/home/ubuntu/envs/live/myproject/apps', '/home/ubuntu/envs/stage/myproject', '/home/ubuntu/envs/', '/var/www'] + sys.path"
    

    首先设置可以找到 settings.py 的 Python 路径,然后将 env 设置为该文件。

    但是,你真的应该在 mod-wsgi 上安装为 very well documented

    【讨论】:

    • 谢谢你,我要试试这个。
    猜你喜欢
    • 2013-09-06
    • 1970-01-01
    • 2012-08-09
    • 2013-09-19
    • 2013-03-08
    • 1970-01-01
    • 2014-03-29
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多