Найти - Пользователи
Полная версия: Проблема с импортом классов из пакетов
Начало » Python для новичков » Проблема с импортом классов из пакетов
1
ptax
Добрый вечер,
имею структуру проекта вида:
    \src (root)
\classes
\utils
FileUtils.py => [functinos]
MyClass.py => [class MyClass ...]
main.py
в каждом из пакетов есть __init__.py с описанием модулей __all_=

Из main.py не могу импортировать класс через “from classes import *”

чтобы использовать его без префикса: myClass= MyClass()…

Если есть мысли - welcome!
Спасибо за помощь.
Александр Кошелев
ptax
__all_=
Одного подчерка не хватает.

Всё то что указано в __all__ должно быть доступно в самом __init__.py, т.е. быть там в пространстве имен.
ptax
Александр Кошелев
ptax
__all_=
Одного подчерка не хватает.

Всё то что указано в __all__ должно быть доступно в самом __init__.py, т.е. быть там в простанстве имен.
“__all_” это опечатка в посте.

Все равно не удается импортировать.
from classes.__init__ import __all__

NameError: name ‘Myfync’ is not defined

Хочет импортировать только с префиксом classes.MyModule.Myfunc
Андрей Светлов
Еще раз:
Всё то что указано в __all__ должно быть доступно в самом __init__.py, т.е. быть там в пространстве имен.
from classes.__init__ import __all__ - это вообще полет мысли! Не припомню, видел ли я где-нибудь такое…
ptax
Андрей Светлов
Еще раз:
Всё то что указано в __all__ должно быть доступно в самом __init__.py, т.е. быть там в простанстве имен.
from classes.__init__ import __all__ - это вообще полет мысли! Не припомню, видел ли я где-нибудь такое…
Это уже просто метод перебора :)
Должно работать так
from classes import *
но не работает :(
Юрчек
from classes.MyClass import *
Оно?
ptax
Юрчек
from classes.MyClass import *
Оно?
Нет.
Попробую расписать подробней.

   \src (root)
\classes
\utils
FileUtils.py => [functinos]
MyClass_1.py => [class MyClass_1 ...]
MyClass_2.py => [class MyClass_2 ...]
MyClass_n....py => [class MyClass_n... ...]
main.py
если писать
from classes.MyClass_1 import MyClass_1
from classes.MyClass_2 import MyClass_2
from classes.MyClass_n import MyClass_n..
То все как бы работает.
Но хочется как то проще написать что бы не писать куча строк для импорта классов .
Александр Кошелев
ptax
from classes.MyClass_1 import MyClass_1
from classes.MyClass_2 import MyClass_2
from classes.MyClass_n import MyClass_n..
Положите эти строчки в classes/__init__.py. И потом пользуйтесь from classes import *
ptax
Александр Кошелев
ptax
from classes.MyClass_1 import MyClass_1
from classes.MyClass_2 import MyClass_2
from classes.MyClass_n import MyClass_n..
Положите эти строчки в classes/__init__.py. И потом пользуйтесь from classes import *
Огромное спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB