我已经尝试了(Django script to access model objects without using manage.py shell)堆栈问题的所有答案,但总是出现错误“no module name'project\u name'”。 我的项目名是snapbackend。你知道吗
我有一个__init__.py
设置。我知道我可以编写django命令,但是运行一个函数有点过分了。你知道吗
我正在使用django 2.0,我想编写一个脚本来删除旧模型。你知道吗
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "snapbackend.settings.production"
import django
django.setup()
import snapbackend
from snapbackend.models import deleteCapsuleModels
deleteCapsuleModels()
这是因为您的模块没有安装,并且没有从它所在的目录运行。你知道吗
如果您使用的是setuptools(一个
setup.py
文件),那么解决这个问题的正确方法是使用python setup.py develop
将您的项目符号链接到您的站点包中。这将使您的模块在整个项目中都可用。你知道吗如果您不使用setuptools,那么这就有点棘手了。如果在运行脚本时能够选择当前的工作目录,则可以通过在运行脚本之前执行
cd YOUR_PROJECT_DIRECTORY
来解决此问题。你知道吗在不能处理当前工作目录的情况下,应该将
PYTHONPATH
环境变量设置为项目的根目录。此环境变量用于为Python添加其他路径,以便在其中查找模块。你知道吗出于安全原因,不要使用
PATH
或sys.path
是很重要的。具体来说,您不希望意外地将任何不知道的可执行文件引入到系统中。你知道吗希望这有帮助!你知道吗
这是一个与您有关的问题^{} ,看起来很简单,但往往更难弄清楚。你知道吗
Python找不到您的django根,因此您需要告诉Python在哪里可以找到该模块(不确定为什么它不工作),但您可以在运行脚本时执行以下操作:
或苍蝇:
就你而言:
目录将取决于到django根的相对路径
相关问题 更多 >
编程相关推荐