python:强制相对导入从脚本文件中搜索

python: forcing relative imports to search from script file

这是我的目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
scripts/
  bpydata/
  bpymodules/
  myCustomScripts/
     lib/
        __init__.py
        customLib.py
     plugin/
        __init__.py
        myParser.py
     __init__.py
     runner.py
  ...
  my_import_script.py
  ...

我从my_import_script开始,它将导入myCustomScripts包。

从那里,我导入runner,它将导入myParser。

myParser需要在customLib中定义的东西,因此它将使用相对导入来获取它

from .lib import customLib

但它不起作用,因为我开始使用my_import_script,因此它将搜索其父目录,而不是搜索myParser的父目录。

当myParser想要.lib时,我怎样才能确保我从myParser的目录而不是my_import_script的目录中加强一个目录?


要从父包导入,请使用..。 如果我没有误解你,这应该有效:

1
from ..lib import customLib

请参阅http://docs.python.org/tutorial/modules.html。