首页 > 解决方案 > Django 项目“配置不当:请求的设置安装应用程序”错误

问题描述

当我尝试使用 Django 代码运行任何 python 脚本时,我需要帮助来解决这个错误。

这是错误:

****PS C:\Users\pebr6\Desktop\tutorial> & c:/Users/pebr6/Desktop/pythonEnvironments/1.0/Scripts/Activate.ps1
(1.0) PS C:\Users\pebr6\Desktop\tutorial> & c:/Users/pebr6/Desktop/pythonEnvironments/1.0/Scripts/python.exe c:/Users/pebr6/Desktop/tutorial/aplicaciones/principal/models.py
Traceback (most recent call last):
  File "c:/Users/pebr6/Desktop/tutorial/aplicaciones/principal/models.py", line 5, in <module>
    class Person(models.Model):
  File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\db\models\base.py", line 107, in __new__
    app_config = apps.get_containing_app_config(module)
  File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\apps\registry.py", line 252, in get_containing_app_config
    self.check_apps_ready()
  File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\apps\registry.py", line 134, in check_apps_ready
    settings.INSTALLED_APPS
  File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\conf\__init__.py", line 76, in __getattr__
    self._setup(name)
  File "C:\Users\pebr6\Desktop\pythonEnvironments\1.0\lib\site-packages\django\conf\__init__.py", line 57, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before acces**sing settings.******

我的项目结构如下:

项目结构

这是我在 settings.py 上的应用程序配置:

应用程序定义

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'aplicaciones.principal',
]

manage.py 文件里面有下面的代码:

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tutorial.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)


if __name__ == '__main__':
    main()

最后一个,我的 wsgi.py 文件:

import os
import sys
from django.core.wsgi import get_wsgi_application

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

application = get_wsgi_application()


sys.path.append('C:/Users/pebr6/Desktop/pythonEnvironments/1.0/Scripts/python.exe')

对于 64 位 Windows,我的 python 版本是 3.8.3,我正在使用 virtualenv 创建不同的 python 环境。

全局环境开启:

C:\Users\pebr6\AppData\Local\Programs\Python\Python38\python.exe

我只是在这里安装了 virtualenv。

我的项目的虚拟环境在路径上:

c:\Users\pebr6\Desktop\pythonEnvironments\1.0\Scripts\python.exe

我在这里安装了 django 和 django rest 框架。

我启动项目的步骤(例如)是:

  1. 创建一个文件夹(教程作为实例)。

  2. 在教程文件夹中,我创建了另一个名为 env 的文件夹,在这里我在 windows 的 cmd 上使用virtualenv 1.0创建了一个虚拟环境。

  3. 创建完成后,我更改为该环境并使用以下命令安装 django 和 django rest 框架:

    点安装django

    pip install djangorestframework

    或者

    python -m pip install django

    python -m pip install djangorestframework

  4. 然后,在教程文件夹中,我也使用以下方法创建了一个项目:

    django-admin startproject 教程。

  5. 在此之后,我使用命令创建了一个应用程序:

    manage.py startapp 主程序

我也试过:

django-admin startapp main

或者

python manage.py startapp main

  1. 当我在 VS Code 上打开教程文件夹(包含 env、project 和 app 文件夹)时,IDE 要求我设置解释器,因此我在计算机上搜索以在我的虚拟环境路径中找到 python.exe:

c:\Users\pebr6\Desktop\pythonEnvironments\1.0\Scripts\python.exe

因此 settings.json 更改为:

“python.pythonPath”:“c:\Users\pebr6\Desktop\pythonEnvironments\1.0\Scripts\python.exe”

  1. 最后我尝试在models.py或test.py上写一些代码,或者创建一个serializers.py并开始编码。当我运行任何脚本时,它会引发异常。

在我通过 64 位版本卸载 32 位的 python 3.8.3 版本后,错误开始发生。我再次尝试全部卸载,我已经使用 virtualenv 将两个版本与全局或虚拟环境一起使用,并且错误仍然存​​在。

我不知道这是否重要,但这就是我在虚拟环境路径上的内容(我猜是我的 PYTHONPATH,不太确定):

蟒蛇路径

我试图打开 manage.py shell 并运行以下命令:

导入系统

sys.path.append("c:\Users\pebr6\Desktop") 或 sys.path.append("c:\Users\pebr6\Desktop\tutorial")

但没有任何改变。

我希望有人可以帮助我解决这个问题,因为我是 python 新手,但我还不了解很多东西。谢谢!

标签: pythondjangopython-3.xdjango-rest-framework

解决方案


您不应该运行您的项目脚本python models.py,如要使用 django,您必须先发出python manage.py

如果你想测试你的代码,你应该在tests.py. Django 的入门教程是开始学习如何在 Django 上进行测试的好地方。还有一个主题仅用于测试。


推荐阅读