Форум сайта python.su
0
Начал изучать питон и сразу возникла проблема с подключением модулей.
ОС Windows, Python 3.3
Проект выглядит так:
C:\Папка_с_проектами
——–\Папка_проекта
————-\Папка_модулей
——————\__init__.py
——————\Модуль1.py
——————\Модуль2.py
Пытаюсь подключить Модуль2 к Модулю1, пишу в Модуле1
from Папка_модулей import Модуль2
переменная = Модуль2()
и появляется ошибка:
Traceback (most recent call last):
File “C:\Папка_с_проектами\Папка_проекта\Папка_модулей\Модуль1.py”, line 2, in <module>
переменная = Модуль2()
TypeError: ‘module’ object is not callable
Подскажите в чем проблема? Уже весь мозг сломал и Оф документацию до дыр проглядел
Офлайн
88
для начала, какой смысл несёт конструкция
переменная = Модуль2()
Офлайн
0
Никакой. Проверка присвоения класса из Модуля2
Офлайн
88
Модуль2 - модуль, а не класс, а Папка_модулей - обычный пакет, поскольку в ней __init__.py
Офлайн
0
Я еще пока в терминах не селен. похожая ситуация.
2 файла в корневой директории: test1.py и test2.py
содержимое test2.py
class Test2(): def __str__(self): return 'test2'
import test2 print(test2())
Traceback (most recent call last): File "C:\PythonProgects\tests\test1.py", line 3, in <module> print(test2()) TypeError: 'module' object is not callable
Отредактировано PaulTmatik (Май 28, 2013 20:13:09)
Офлайн
88
PaulTmatikА почему он должен вызываться?
Почему этот модуль не может быть вызван?
Офлайн
0
Все разобрался. Я подгружаю модуль, но не вызываю объект.
так как у меня объект имеет одинаковое с файлом имя, вот я и запутался.
Надо было так:
from Папка_модулей import Модуль2
переменная = Модуль2.Модуль2()
import test2 print(test2.test2())
Офлайн
88
PaulTmatikПопробуйте:
содержимое test1.pyimport test2 print(test2())
import test2 print(test2.Test2) print(test2.Test2())
Офлайн
88
PaulTmatikОтлично!
Все разобрался.
Офлайн
0
Модуль2 - модуль, а не класстеперь я понял смысл этой фразы
Отредактировано PaulTmatik (Май 28, 2013 20:38:02)
Офлайн