首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想从一个独立的python脚本写入Django模型,该脚本生成CSV文件,但似乎在错误的环境中

我想从一个独立的python脚本写入Django模型,该脚本生成CSV文件,但似乎在错误的环境中
EN

Stack Overflow用户
提问于 2021-05-20 00:33:36
回答 2查看 39关注 0票数 0

我有一个独立的python脚本,它定期自动运行,从外部数据生成CSV文件。

我想如果这个脚本也可以更新在virtualenv中运行的Django应用程序中的相应模型。

我在脚本中添加了以下几行

代码语言:javascript
运行
复制
from django.conf import settings
settings.configure()
from app.models import BER_assessors

该模型是django,并在BER_assessors应用程序根目录下的model.py文件中定义。该脚本也位于django应用程序的根目录中(包含app/authentication/core/env/media等文件夹)

当我运行我的脚本时,我得到了错误消息"django.core.exceptions.AppRegistryNotReady:应用程序还没有加载“。Django应用程序本身运行良好。

我认为有一个上下文或环境的问题,即我不在应用程序中,因此无法写入模型等。我如何纠正这一点?

最好的问候/问候

EN

回答 2

Stack Overflow用户

发布于 2021-05-20 01:52:48

独立脚本的正确顺序为:

代码语言:javascript
运行
复制
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'module.settings')
django.setup()

# other django related imports can now be done.
票数 0
EN

Stack Overflow用户

发布于 2021-05-27 05:04:17

我无法得到上面的答案。它一直告诉我没有定义其他模块。因此,在深入研究之后,我发现我需要激活virtualenv才能使所有这些模块可用。

This page给了我正确的方向,我最终在文件的顶部添加了以下内容。

代码语言:javascript
运行
复制
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文件位于核心子文件夹中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67607281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档