【问题标题】:python manage.py runserver error : ModuleNotFoundError: No module named 'settings'python manage.py runserver 错误:ModuleNotFoundError: No module named 'settings'
【发布时间】:2018-12-16 04:42:41
【问题描述】:

我正在开始使用 python,但在使用 django 2.1 和 python 3.7 时遇到了许多其他人似乎也遇到过的问题。

以下是我到达这里的过程:

  • 启动虚拟环境

  • 开始了一个 django 项目

  • 尝试运行:

python manage.py runserver

我一直收到错误:ModuleNotFoundError: No module named 'settings'

我在以下 SO 问题中进行了广泛研究并遇到了一些解决方案,但这些解决方案对我来说都不是有效的解决方案。有人遇到过这个问题吗?

First question researched

Second Question researched

任何见解都会有所帮助。提前致谢。

编辑:我的 manage.py 文件如下所示:

#!/usr/bin/env python import os import sys

if __name__ == '__main__':
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mytodoapp.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

我的文件结构如下:

我的应用程序

我的应用程序

>__init__.py

>settings.py

>urls.py

>wsgi.py

manage.py

Screenshot of my console

Manage.py file

【问题讨论】:

  • 确保您的 manage.py 文件引用的设置文件位于应有的位置。发布目录的组织方式以及设置文件的位置对您有所帮助。还有你在 manage.py 中的内容。控制台中的错误等。此外,第二个问题提到有一个与您的项目同名的应用程序。这适用于你吗?
  • 当你说“开始一个 Django 项目”时,你是如何开始你的 Django 项目的?我问是因为如果你 1) 创建你的虚拟环境。 2)执行pip install Django 3)django-admin startproject mynewproj 4)cd mynewproj 5)python manage.py runserver,一切都应该工作。您一定是做了其他导致问题的事情。
  • @Whodini 请看一下上面的编辑
  • 也发布 pip freeze 的结果
  • 另外,在您的控制台中,它显示您安装了 Django 1.11,但您的问题标签显示的是 2.1。

标签: python django django-2.1


【解决方案1】:
  1. 打开你的项目文件夹。

  2. 搜索 wsgi.py 文件并添加这一行。

    from django.conf import settings.
    
  3. 然后保存。

  4. 找到你的manage.py文件编辑

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectname.settings')
    

    os.environ['DJANGO_SETTINGS_MODULE' ]='projectname.settings'
    
  5. 保存并修复walla问题。

  6. cd 到你的应用程序文件夹,然后运行服务器 与

    python manage.py runserver. 
    

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。但是我在使用 Anaconda 时正在创建 django 项目。一旦我使用以下命令安装了 sqlparse,问题就解决了。

    conda install sqlparse
    

    【讨论】:

      【解决方案3】:

      在我的情况下,问题最终是因为我以某种方式修改了树结构,使得manage.py 无法访问它需要的某些资源。我的解决方案最终重新创建了一个废弃的 django 项目并查看了项目结构。你应该遵循这个结构

      yourproject/
      ├── db.sqlite3
      ├── manage.py
      └── yourproject/
          ├── __init__.py
          ├── app1/
          ├── settings.py
          ├── urls.py
          └── wsgi.py
      

      manage.py 位于内部yourproject 文件夹之外似乎很重要。

      【讨论】:

        【解决方案4】:

        django 2.1 需要 python 3.5+,它支持 manage.py 文件中的语法。

        激活您的环境并验证您的 python 是 3.7 如果不是,请在创建 virtualenv 时指定您的 python 版本。

        virtualenv -p /path/to/your/python3.7 code
        

        【讨论】:

          【解决方案5】:

          尝试安装 'sqlparse' 。然后它将在 Anaconda 中工作。

          pip install sqlparse
          

          【讨论】:

            猜你喜欢
            • 2022-12-19
            • 1970-01-01
            • 2022-08-24
            • 2018-12-05
            • 1970-01-01
            • 2022-10-13
            • 2022-08-14
            • 2022-12-27
            • 2022-12-27
            相关资源
            最近更新 更多