【问题标题】:After collapsing Django project's top-most folder, can't find settings module折叠 Django 项目的最顶层文件夹后,找不到设置模块
【发布时间】:2012-12-20 23:03:22
【问题描述】:

当我最初创建我的 Django 项目时,我有这个文件夹结构:

project/
    project/
        manage.py
        settings.py
        ...

在最顶层的文件夹中,我初始化了我的 git repo 以及我的虚拟环境。

我想折叠顶层文件夹(就像我运行了 `django-admin.py startproject .':

project/
    manage.py
    settings.py

但是,当我尝试手动执行此操作时,它突然找不到设置模块。它仍在project.settings. 寻找它,这可能是硬编码的吗?

当我运行python manage.py runserver 时,我收到此错误:

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

当我运行 django-admin.py help <some subcommands> 时,我收到此错误:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

我确定在某处我有设置设置的路径,但我找不到它。有什么想法吗?

【问题讨论】:

  • 如果以下任何帖子是解决问题的方法,请接受它作为答案,因为它会对其他人有帮助。

标签: python django


【解决方案1】:

我过去曾使用过这些地方:

  • 您可能在 .bashrc / .bash_history / 其他一些 shell 启动文件中设置了 PYTHONPATH 环境变量
  • 您可能已经在 $virtualenv/bin/activate 脚本中的 virtualenv 中设置了上述变量
  • 您可能已从 $virtualenv/lib/pythonx.y/site-packages 中对您的项目进行符号链接

【讨论】:

  • 谢谢——我检查了所有这些地方,但找不到任何 Django 设置。我最终只是恢复到默认文件夹结构。
【解决方案2】:

错误是因为以下几种可能:

  1. 您没有从项目根目录运行命令,即project/,而不是project/project

  2. 没有将项目根目录(即project/)添加到PYTHONPATH

  3. 您的 manage.py 不在项目根目录下,即 project/ ,而是在 project/project 中。


可能的解决方案

  1. 将项目根目录,即project/ 添加到PYTHONPATH - 因为manage.py 尝试执行与import project.settings 等效的操作,为此需要在sys.path 中找到project
  2. 1234563只是settings - 所以将你的manage.py从当前的project/project移到项目根目录project/
  3. DJANGO_SETTINGS_MODULE 设置为project.settings

project.settings 表示设置模块比manage.py 低一个目录-在您的情况下,manage.pysettings.py 在同一级别,即project/project/ 那就是你没有使用默认的django项目结构。 无论如何,您可以在运行“runserver”命令之前检查 /export 设置:(来自官方 Django 文档 - setting DJANGO_SETTINGS_MODULE

示例(Unix Bash shell)

export DJANGO_SETTINGS_MODULE=mysite.settings
django-admin.py runserver

示例(Windows shell):

set DJANGO_SETTINGS_MODULE=mysite.settings
django-admin.py runserver

建议:尽量遵守常规的项目结构(至少在你成为专家之前)。即保持manage.py 一个目录级别高于其他项目文件.. settings.pyurls.py

【讨论】:

    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 2016-12-03
    • 2012-02-08
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多