Django:导入自定义Python3类的问题

时间:2017-06-04 09:42:08

标签: python django python-3.x

我是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约定,它建立在另一个类上(但都在同一个目录中)。

我做错了什么以及如何解决?

2 个答案:

答案 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模块和类是很奇怪的。在名称中。