如何将自己的脚本导入Django中的models.py

时间:2019-01-31 17:10:13

标签: python django python-3.x

我创建了一个小脚本来比较两个图像的相似程度。它包含在名为compare_image.py的文件中,该文件仅包含一个函数compare。该文件位于应用程序目录中。我正在尝试使用行models.pyimport compare_image文件导入它,但是尝试执行此操作会导致错误消息ModuleNotFoundError: No module named 'compare_image'

简化的目录结构如下:

myproject
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── compare_image.py
    ├── forms.py
    ├── models.py
    ├── tests.py
    ├── urls.py
    └── views.py

myapp是项目中唯一的应用程序。除此之外,webapp的功能还不错。

我尝试删除touch文件并重新__init__.py无济于事。我可以从compare_image目录中的python shell导入myappcompare_image.py中唯一的导入是PIL或标准库,因此我不认为循环导入是罪魁祸首。

一种解决方案是将代码放入models.py中,但我不想使这个文件混乱。

我认为,由于此错误似乎很基本,因此在Django中可能存在一些用于用户编写脚本的标准机制,但我在网上找不到任何提及。

如果可以使事情变得更清楚,我很乐意提供有关该项目的更多详细信息。预先感谢您的帮助(此错误使我疯狂!)

1 个答案:

答案 0 :(得分:0)

我认为您在需要相对导入的地方进行了绝对导入。你可以尝试:

from .compare_image import compare

来自与compare_image.py相同文件夹中的python文件?