2012-01-30 3 views
0

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

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 
+0

Почему бы не 'от основного импорта A'? (Если это неправильно, извините, нам нужна дополнительная информация о том, где вы пытаетесь запустить код, который должен импортировать 'A'.) – HardlyKnowEm

ответ

2

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

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

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