python - ImproperlyConfigured : Requested setting INSTALLED_APPS, 但未配置设置 - Scraper

标签 python django django-rest-framework

当我尝试在 Django 中运行抓取工具时,出现以下错误。

当我尝试使用内置 Django 模型将抓取的数据放入数据库时​​,发生了这种情况。

回溯和错误:

/usr/bin/python3.6 /home/xxxxxx/Desktop/project/teo/movierater/scrap.py
Traceback (most recent call last):
  File "/home/xxxxxx/Desktop/project/teo/movierater/scrap.py", line 7, in <module>
    from teo.movierater.api.models import *
  File "/home/xxxxxx/Desktop/project/teo/movierater/api/models.py", line 3, in <module>
    class Author(models.Model):
  File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 103, in __new__
    app_config = apps.get_containing_app_config(module)
  File "/usr/local/lib/python3.6/dist-packages/django/apps/registry.py", line 252, in get_containing_app_config
    self.check_apps_ready()
  File "/usr/local/lib/python3.6/dist-packages/django/apps/registry.py", line 134, in check_apps_ready
    settings.INSTALLED_APPS
  File "/usr/local/lib/python3.6/dist-packages/django/conf/__init__.py", line 79, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python3.6/dist-packages/django/conf/__init__.py", line 64, in _setup

    % (desc, ENVIRONMENT_VARIABLE))
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 accessing settings.

我把它放在bin/activate中:

export DJANGO_SETTINGS_MODULE=mysite.settings

这是 scraper.py 的代码片段:

import django
import os
import requests
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from teo.movierater.api.models import *


os.environ['DJANGO_SETTINGS_MODULE'] = 'movierater.settings'
django.setup()

当我尝试在 django.setup() 下面导入模型时:

import django
import os
import requests
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

os.environ['DJANGO_SETTINGS_MODULE'] = 'movierater.settings'
django.setup()

from teo.movierater.api.models import *

错误:

ModuleNotFoundError: No module named 'movierater'

我的项目结构和设置:

enter image description here

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

wsgi.py 文件:

import os

from django.core.wsgi import get_wsgi_application

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

application = get_wsgi_application()

最佳答案

我可以在这里看到一些可能的问题。

  1. 使用 movierater.settings 作为 DJANGO_SETTINGS_MODULE 值,即 export DJANGO_SETTINGS_MODULE=movierater.settings

  2. 你如何启动你的应用程序,你尝试过python manage.py shell吗?

  3. 如果您想将抓取工具作为脚本启动(例如python manage.py scraper),那么最好的方法是编写自定义命令;看看use django: from "python manage.py shell" to python script

关于python - ImproperlyConfigured : Requested setting INSTALLED_APPS, 但未配置设置 - Scraper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57189162/

相关文章:

Python 中介模式内存泄漏?

python - 将字符串放在 64 个字符后的新行中

Python 正则表达式无法正常工作

python - 如何对嵌套关系进行分页?

python - Django 表单 : "Select a valid choice. That choice is not one of the available choices."

django 对象不能使用 serializers.serialize 进行迭代

python - 如何在 Django REST Api 中列出特定用户的博客文章

Django 我应该在单独的 django 应用程序中管理用户吗?

对 POST 的 Django Rest Framework 对象级权限

python - 如何使用python命令执行python脚本