#python
#python
Вопрос:
У меня есть структура каталогов проекта, как показано ниже
|project
|-__init__.py
|-src
|- __init.py__
|- features
|- __init.py__
|- clean_data.py
|-notebooks
|- notebook.ipynb
Основной каталог называется project, в котором у меня есть два каталога — src и notebooks.
Я хочу импортировать модуль clean_data.py в разделе каталог функций (который находится в разделе src) в моем блокноте.файл ipynb.
Я попробовал это:
from ..src.features import clean_data
поскольку все каталоги служат пакетом с init.py файл в каждом из них.
Но он выдает ошибку. Потратил довольно много усилий, пытаясь разобраться в этом, но не уверен, почему я получаю ошибку. Согласно этой статье, я, похоже, правильно обращаюсь к модулю
mportError Traceback (most recent call last)
<ipython-input-23-11fd29e06b4c> in <module>()
----> 1 from ..src.features import clean_data
ImportError: attempted relative import with no known parent package
Комментарии:
1. Какую версию python вы используете?
2. 3.7.8. Использование среды conda при открытии записной книжки в этой среде и попытке импортировать модуль из другого каталога
3. Вы пробовали использовать
from project.src.features import clean_data
?4. ДА. Затем он сообщает, что модуль с именем project отсутствует.
5. Я пробовал аналогичный относительный путь в других проектах, и он работает нормально. Я понятия не имею, почему на этот раз это не работает. Я потратил много времени, чтобы разобраться в этом. Не повезло
Ответ №1:
Это часть моего кода, посмотрите на это:
from domain_pricing.domains import *
from domain_pricing.conversion_rate import *
Я импортирую domains.py
и conversion_rate.py
из domain_pricing
папки.
Что вы должны сделать, это:
from src.features import clean_data
from src.data import another_module
Вам не нужны .
каталоги путей или ..
как системы на базе Unix. Вам нужно вызвать папку напрямую.
Комментарии:
1. то, что вы упоминаете, — это абсолютный путь. Я написал относительный путь. Оба должны работать. У меня ничего не работает. Однако, если я использую абсолютный путь, тогда мне пришлось бы указать весь путь из project.src.features import clean_data Также пробовал это, не работает
2. Это то, что работает в моем проекте, но включение относительного пути для меня не сработало. Если это не сработало, попробуйте импортировать
project.src.features
path. Если ничего не сработало, я думаю, что я не знаю больше решений. Я поделился своим решением.