Django 4.1 中的 Django 独立脚本

bba*_*oy8 1 python django import django-4.1

我正在尝试在 django 4.1 中运行独立脚本。我按照文件顶部这篇文章中的建议进行了设置:

Django 独立脚本

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "path_to_settings.settings")
import django
django.setup()
Run Code Online (Sandbox Code Playgroud)

但是,在第 4 行,我收到以下错误:

ModuleNotFoundError: No module named 'sport_api'

这是我的INSTALLED_APPSsettings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # applications
    'sport_api',
    'sport_bet',

    # library
    'rest_framework',
    'corsheaders',
]
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

更新:

目录结构

aar*_*ron 5

仅使用该代码片段,您的脚本就应该与 manage.py 位于同一目录中。

否则,如果您将其嵌套在 中Backend\sportivo\sport_api,那么您需要:

from pathlib import Path
import sys
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.append(BASE_DIR.as_posix())
# ...
Run Code Online (Sandbox Code Playgroud)

根据其嵌套方式,只需根据需要进行BASE_DIR调整即可。.parent

不过,最好对独立脚本使用自定义管理命令。