|
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 3
|
|
ImportError: attempted relative import with no known parent package24.03.2020, 11:20. Показов 22493. Ответов 9
привет!
у меня есть следующая структура: project ---__init__.py ---package -------__init__.py -------module.py ---test -------__init__.py -------test.py я пытаюсь импортировать функцию func из module.py в test.py: from ..package.module import func но получаю ошибку ImportError: attempted relative import with no known parent package. что я делаю не так? нашел решение через sys.path, но хочу понять, как правильно в случае с двумя точками видел здесь такую же тему, но там нет ответа
0
|
|
| 24.03.2020, 11:20 | |
|
Ответы с готовыми решениями:
9
Ошибка attempted relative import with no known parent package ImportError: attempted relative import with no known parent package ImportError: attempted relative import beyond top-level package |
|
Модератор
|
|||||||||||||||||||||||||||||||
| 24.03.2020, 15:11 | |||||||||||||||||||||||||||||||
|
laji, Папка с проектом не должна содержать __init__.py, если это не модуль который предназначен только для импорта. Так что-же это у вас проект или модуль?
Добавлено через 24 минуты Пример использования относительного импорта: Структура проекта: PROJECT ----main.py Кликните здесь для просмотра всего текста
----MODULE --------__init__.py Кликните здесь для просмотра всего текста
--------module1.py Кликните здесь для просмотра всего текста
--------MY_MODULES ------------__init__.py Кликните здесь для просмотра всего текста
------------module2.py Кликните здесь для просмотра всего текста
------------module3.py Кликните здесь для просмотра всего текста
0
|
|||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 3
|
|
| 24.03.2020, 15:29 [ТС] | |
|
в project содержится config.py, который тоже импортируется, поэтому там присутствует __init__.py
я пытался не загромождать структуру проекта, поэтому не стал указывать наличие config.py, но посчитал, что __init__.py возможно имеет какое-то влияние на импорт, поэтому указал его наличие
0
|
|
|
Модератор
|
|
| 24.03.2020, 16:39 | |
|
laji, копирование из родительских директорий нужно в крайних случаях: когда модуль разбит на кучу подмодулей, и в подмодулях присутствуют одинаковые классы, объекты или переменные, тогда все это выносят в основной модуль и просто импортируют оттуда.
0
|
|
|
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 3
|
|
| 24.03.2020, 17:27 [ТС] | |
|
я б рад обойтись без импорта из родительской директории, но нужно)
и хотелось бы разобраться, что я не так делаю с этими точками. крайний случай или нет, но у людей это как-то работает p.s. сорри за оффтоп, но как вы делаете обращение? или это просто жирный шрифт? а то вы отвечаете мне, а я вникуда
0
|
|
|
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
|
||||||
| 26.09.2020, 16:17 | ||||||
|
Если название папки начинается с точки, как импортировать?
Вот пример: app/.heroku/python/module.py app/app1/script.py:
0
|
||||||
|
|
|
| 26.09.2020, 17:16 | |
|
В Python нельзя использовать каталог с точкой в имени для пакетов.
0
|
|
|
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
|
|||||||
| 26.09.2020, 19:08 | |||||||
|
(b'/app/.heroku/python/bin/SOME.EXE', b'/usr/local/bin/SOME.EXE', b'/usr/bin/SOME.EXE', b'/bin/SOME.EXE') Но, так как app --- это папка расположения проекта, то приходится создавать исполняемые файлы в папках, которые являются подкаталогами app. Я работаю с django. Решил таким образом: script.py:
0
|
|||||||
|
|
||
| 26.09.2020, 19:48 | ||
|
Файл\каталог в пакете не могут иметь имен с точкой. Потому что имя файла или каталога в пакете, чтобы быть импортируемым, должно быть валидным Python идентификатором.
1
|
||
|
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
|
|
| 26.09.2020, 20:19 | |
|
Я понял, про что вы говорите. В проекте модуль вызывает exe из этой же папки где и сам расположен. Этот модуль нужно импортировать в контроллер. Модуль не может быть в другой папке (например, где и контроллер), а только в той, где и исполняемый файл. Так уж требует сам исполняемый файл., потому что если его вызывать модулем, который не там где исполняемый файл, то программа работает некорректно. Уже проверял.
0
|
|
| 26.09.2020, 20:19 | |
|
Помогаю со студенческими работами здесь
10
ImportError: cannot import name 'Chat' from 'telegram'
ImportError: cannot import name 'PROT_READ' from 'mmap' Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|