我是Django的新手(所以这可能是一个Python3问题)。此外,我还阅读了其他类似的问题,例如Error importing Python module。
我有一个具有以下结构的目录:
-
my_class
- -
__init__.py
- -
custom_class_1.py
- -
custom_class_2.py
文件 custom_class_2.py 中有哪些行:
from custom_class_1 import Custom_Class_1
class Custom_Class_2:
self.thing = Custom_Class_1()
即。一个班级建立在其他班级之上。
使用之前关联的问题中的solution
这会导致Django服务器吐出此错误:
from custom_class_1 import Custom_Class_1
ImportError: No module named 'Custom_Class_1'
这让我觉得我在定义一个类时没有遵循pythonic约定,它建立在另一个类上(但都在同一个目录中)。
我做错了什么以及如何解决?
答案 0 :(得分:1)
您可以使用relative import (see PEP 328 for more details):
from .custom_class_1 import Custom_Class_1
.
前面的custom_class_1
告诉Python应该从同一目录导入模块custom_class_1
。
答案 1 :(得分:0)
Django项目中的导入应该使用项目根目录中的模块路径。
例如,如果my_class
位于Django项目的根目录,
然后您可以导入Custom_Class_2
:
from my_class.custom_class_2 import Custom_Class_2
顺便说一句,用#34; class"命名Python模块和类是很奇怪的。在名称中。