首页 > 解决方案 > 如何将腌制的 python 对象导入 Django view.py 文件

问题描述

该文件本身运行良好:

import pickle

with open('model.obj', 'rb') as f:
    model = pickle.load(f)

print(model)

但我真正想做的是在我的 Django views.py 文件中使用模型,它是一个非常大的存储 python 字典,如下所示:

from django.shortcuts import render
from modeler.load_model import model

def page(request):
    return render(request, 'page.html', {'model':model})

但是,当我尝试这个时,我收到以下错误:

 File "C:\Users\mmm\PycharmProjects\MyProject\modeler\load_model.py", line 3, in <module>
    with open('model.obj', 'rb') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'model.obj'

我不明白为什么,因为如果我直接运行第一个文件,它工作正常 - 这里唯一的额外步骤是将其导入views.py(我首先尝试在views.py中包含整个load_model.py代码,但得到了这个错误,所以然后在这个单独的文件中尝试它并且它自己工作,所以显然问题是我不知道如何在 Django 中正确加载/导入我的 python 模型对象或文件。

标签: pythondjango

解决方案


我找到了答案!显然,我所要做的就是在我的 open 语句中放入“model.obj”的绝对路径,而不仅仅是相对路径,如下所示:

with open('C:\\Users\\mmm\\PycharmProjects\\MyProject\\modeler\\model.obj', 'rb') as f:
    model = pickle.load(f)

推荐阅读