python相对导入的怪异
我有一个文件:python相对导入的怪异,python,import,Python,Import,我有一个文件: STARTDIR/module/submodule/config.py 我有另一个文件: STARDIR/utils/filesys/getAbsPath.py 为什么这一行在config.py中工作 from ..utils.filesys import getAbsPath 它似乎是。指的是模块,而不是STARTDIR。模块中根本没有utils。事实上 from .. import utils 屈服 ImportError: cannot import name ut
STARTDIR/module/submodule/config.py
我有另一个文件:
STARDIR/utils/filesys/getAbsPath.py
为什么这一行在config.py
中工作
from ..utils.filesys import getAbsPath
它似乎是。
指的是模块
,而不是STARTDIR
。模块中根本没有utils
。事实上
from .. import utils
屈服
ImportError: cannot import name utils
这应该起作用:
from ...utils.filesystem import getAbsPath
这是因为:
来自。导入…
imports fromSTARTDIR/module/submodule/
from。。导入…
从导入STARTDIR/module/
来自。。。导入…
从导入STARTDIR/
这应该可以:
from ...utils.filesystem import getAbsPath
这是因为:
来自。导入…
imports fromSTARTDIR/module/submodule/
from。。导入…
从导入STARTDIR/module/
来自。。。导入…
从导入STARTDIR/
您的python路径是什么?(import sys;print sys.path)您的python路径是什么?(import sys;print sys.path)不会,因为我正在STARTDIR
中启动脚本(因此它将超出顶级模块导入错误)。但是我已经安排好了我的代码来完成这个任务。你说“既然我开始写脚本”是什么意思?因为STARTDIR不是Python模块?是的。我正在运行的脚本位于STARTDIR/run.py
中。即使有STARTDIR/\uuuu init\uuuu.py
,STARTDIR
也不会是一个模块。啊,好的。在这种情况下,正如您可能已经发现的,您不能使用相对导入。同样,正如您可能已经了解到的,最简单的方法是将STARTDIR添加到PYTHONPATH,然后只导入utils…
。不会,因为我正在STARTDIR
中启动脚本(因此这将超出顶级模块导入错误)。但是我已经安排好了我的代码来完成这个任务。你说“既然我开始写脚本”是什么意思?因为STARTDIR不是Python模块?是的。我正在运行的脚本位于STARTDIR/run.py
中。即使有STARTDIR/\uuuu init\uuuu.py
,STARTDIR
也不会是一个模块。啊,好的。在这种情况下,正如您可能已经发现的,您不能使用相对导入。同样,正如您可能已经了解到的,最简单的方法是将STARTDIR添加到PYTHONPATH中,然后导入utils…。