我有一个启动并运行的Django应用程序,大多以易于理解的方式。但我有一个奇怪的问题。
我的代码位于urls.py和views.py所在位置的下一级。我有许多Python文件,其中一些用作其他impoPython文件中实际代码的导入。
我发现,作为Django应用程序的一部分,我需要在导入文件名之前加上'。'供他们进口。因此,如果我有一个名为foo.py的代码文件和一个名为vars.py的导入文件,则无法正确导入:
# foo.py
from vars import *
但这有效:
# foo.py
from .vars import *
问题出现了,如果我尝试更多Pythonic(和安全)并命名导入,所以如果我导入所有内容它获得前缀。但是以下任何一项工作都没有:
# foo.py
import vars as v
import .vars as v
我的推测是Django(使用virtualenv或通过其他方式)定义查找导入文件的某些路径,以及'。'有必要将Python解释器指向导入文件所在的同一目录,以找到它需要查找的导入文件。但是,不知何故,这会“破坏”为导入的文件内容提供自己的前缀(或命名空间,我猜)的能力。
有什么想法?