Использование относительного импорта в Python имеет один недостаток, вы больше не сможете запускать модули как автономные, потому что вы получите исключение: ValueError: Attempted relative import in non-package
# /test.py: just a sample file importing foo module
import foo
...
# /foo/foo.py:
from . import bar
...
if __name__ == "__main__":
pass
# /foo/bar.py: a submodule of foo, used by foo.py
from . import foo
...
if __name__ == "__main__":
pass
Как мне изменить код примера, чтобы иметь возможность выполнить все: test.py
, foo.py
и bar.py
Я ищу решение, которое работает с python 2.6+ (включая 3.x).