我创建了一个小脚本来比较两个图像的相似程度。这包含在一个名为compare_image.py
的文件中,该文件只包含一个函数compare
。此文件位于应用程序目录中。我试图使用行import compare_image
从models.py
文件导入它,但尝试这样做会导致错误消息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
是该项目中唯一的应用程序。除此之外,网络应用程序的功能也很好。
我已尝试删除并重新使用touch
__init__.py
文件,但没有成功。我可以从myapp
目录中的python shell导入compare_image
fine。compare_image.py
中唯一的导入是到PIL或标准库,所以我不认为循环导入是罪魁祸首。
一种解决方案是将代码放在models.py
中,但我不想把这个文件弄得一团糟。
我想,由于这个错误看起来很基本,Django中可能有一些用户编写脚本的标准机制,但我在网上找不到任何关于这一点的提及。
如果能让事情变得更清楚,我很乐意提供更多关于该项目的细节。提前感谢任何帮助(这个错误让我抓狂!)
我认为您正在进行一个绝对导入,其中需要一个相对导入。你能试试吗:
from .compare_image import compare
来自与compare_image.py
位于同一文件夹中的python文件?