├── project
│ ├── app
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── forms.py
│ │ ├── script.py
在models.py
中,我有一些类,比如说Class1,Class2,Class3 ...
我可以轻松地使用models.py
将这些类从forms.py
导入到from app.models import Class1, Class2, ...
。
运行script.py
时,无法以这种方式将这些类导入script.py
。在ModuleNotFoundError: No module named 'app'
中使用script.py
(在from models import Class1, Class2, ...
中)有相同的错误,但是在models.py
中。如果重要的是models.py
由Django产生,forms.py
由我创建。这对我来说很奇怪,因为models.py
和forms.py
可以识别app
模块,而script.py
无法识别,但是所有这些文件都放在一个目录中。复制粘贴的导入,这不是打印错误。
怎么了?
答案 0 :(得分:1)
如果您正在执行python script.py
,请将其移至app
模块之外。
答案 1 :(得分:1)
在这种设置下,我通常会这样做:
script.py
是主要脚本,位于应用程序旁边的项目目录中。
init.py
将包含:
from app import models, forms
script.py
将具有
import app
如果models.py
中需要forms.py
中的任何内容:
try:
import forms # uses this when ran in models.py
except:
from app import forms # uses this when ran from script.py
如果forms.py
中需要models.py
中的任何内容:
try:
import models # uses this when ran in forms.py
except:
from app import models # uses this when ran from script.py