Импорт классов в Python 3.2 - PullRequest
       33

Импорт классов в Python 3.2

0 голосов
/ 30 января 2012

В файле foo.py я хочу импортировать класс A из файла main.py со следующей папкой Structur:

main.py
__init__.py
|-folder1
  __init__.py
  |-folder 2
    __init__.py
    foo.py
  |-folder 3
  ...

Как должна выглядеть строка импорта?Я пробовал что-то вроде

from ..main import A

, но только что получил

ValueError: Attempted relative import in non-package

1 Ответ

2 голосов
/ 30 января 2012

Эта ошибка возникает из-за того, как вы запускаете файл - если вы хотите сделать этот относительный импорт, вам нужно запустить вашу программу foo следующим образом:

>>> import topfolder.folder1.folder2.foo
>>> foo.run()

(Другими словами, вам нужно рассматривать структуру пакета, из которой вы импортируете, как фактический пакет.)

...