Вот структура каталогов:
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
Как импортировать bar.py в foo.py?
Вот структура каталогов:
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
Как импортировать bar.py в foo.py?
Если все встречающиеся каталоги являются пакетами Python, т. е. все они содержат __init__.py
, то вы можете использовать
from ..bar_dir import bar
Если каталоги не являются пакетами Python, вы можете сделать это, повозившись с sys.path
, но вы не должны этого делать.
sys.path
.
- person Sven Marnach; 01.11.2017
ipython foo.py
на этом, я получаю ImportError: attempted relative import with no known parent package
. Я добавил файл __init__.py
в родительский каталог и каталог bar_dir
- person ogogmad; 06.07.2018
python3
также дает ту же ошибку. ImportError: attempted relative import with no known parent package
- person Pe Dro; 15.09.2020
Вы можете использовать модули sys
и os
для обобщенного импорта. В foo.py
начните со строк
import sys
import os
sys.path.append(os.path.abspath('../bar_dir'))
import bar
foo.py
. Чтобы использовать каталог скрипта, используйте sys.path.append(os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'bar')))
- person cowlinator; 07.04.2021