python - 我想从生成 CSV 文件但似乎在错误环境中的独立 python 脚本写入 Django 模型
问题描述
我有一个独立的 python 脚本,它会定期自动运行,以从外部数据生成 CSV 文件。
我想这个脚本是否也可以更新在 virtualenv 中运行的 Django 应用程序中的相应模型。
我在脚本中添加了以下几行
from django.conf import settings
settings.configure()
from app.models import BER_assessors
模型是 BER_assessors,在 django 应用程序根目录下的 app 目录下的 model.py 文件中定义。该脚本也位于 django 应用程序的根目录(包含 app/authentication/core/env/media 等文件夹的那个)
当我运行我的脚本时,我收到错误消息“django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。” Django 应用程序本身运行良好。
我认为存在上下文或环境问题,即我不在应用程序中,因此无法写入模型等。我该如何纠正这个问题?
最好的问候/科尔姆
解决方案
我无法得到上面的答案。它一直告诉我没有定义其他模块。所以在挖掘之后,事实证明我需要激活 virtualenv 才能使所有这些模块可用。
这个页面给了我正确的方向,我最终在文件顶部添加了以下内容。
activate_this = '/full_path_to.../env/bin/activate_this.py'
exec(open(activate_this).read())
import sys
sys.path.append("/full_path_to.../env/lib/python3.7/site-packages")
import django
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
django.setup()
没有更多错误消息,脚本现在正在运行。
脚本在django安装的根目录下,settings.py文件在core子目录下
推荐阅读
- python - 粒子碰撞动画Python
- python - 从另一个窗口 PyQt5 打开时未加载窗口内容(一个 .py 中有 2 个类)
- flutter - 如何在 Flutter 的 .env 文件中定义变量?
- python - 具有最大聚合性能的 Pandas groupby 函数很慢。groupby 性能提升
- rust - Rust STM32:webUSB 发布传感器
- r - 在 R 中创建子组
- php - 如何在php中获取相同元素的位置?
- elixir - 处理错误元组列表时是否有标准做法?
- microsoft-cognitive - 表单识别器 S0 层限制
- jquery - 如何从Nodejs接收base64数据并使用jquery显示