Как импортировать скрипт Python из подмодуля?

У меня есть следующая структура модулей Python:

/foo.py
/module
/module/__init__.py
/module/submodule/__init__.py
/module/submodule/bar.py

в foo.py у меня есть следующий код:

from module.submodule.bar import *

Но в результате получаю следующую ошибку:

'.../module/bar.py': [Errno 2] No such file or directory

Почему python пытается найти файл в /module/bar.py, а не в module/submodule/bar, как я указал при импорте?


person bigdatarefiner    schedule 16.05.2012    source источник
comment
Работает на меня. У вас есть что-то странное в одном из файлов __init__.py?   -  person Wooble    schedule 16.05.2012
comment
Это не ошибка, которую вы получаете при импорте. Похоже, у вас есть код, который выполняет open(something) либо в bar.py, либо в одном из __init__.py файлов.   -  person Daniel Roseman    schedule 16.05.2012
comment
Да... это было очень странное поведение PyCharm после рефакторинга. Воссоздание конфигурации запуска решило проблему. Спасибо всем, вы дали мне идею попробовать запустить его из консоли, и это сработало.   -  person bigdatarefiner    schedule 16.05.2012
comment
@infalco, когда таймер самоответа истечет, опубликуйте это как ответ ниже и примите его.   -  person This    schedule 16.05.2012


Ответы (1)


Это была ошибка PyCharm. Если вы перемещаете свой скрипт из одной папки в другую, он сохраняет старый путь и работает с ним, даже если вы изменили его в конфигурации запуска. Таким образом, воссоздание конфигурации запуска решает проблему.

person bigdatarefiner    schedule 01.06.2012