Найти - Пользователи
Полная версия: Ошибка в подключении собственных пакетов
Начало » Python для новичков » Ошибка в подключении собственных пакетов
1
PaulTmatik
Начал изучать питон и сразу возникла проблема с подключением модулей.

ОС 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
Подскажите в чем проблема? Уже весь мозг сломал и Оф документацию до дыр проглядел
Shaman
для начала, какой смысл несёт конструкция
переменная = Модуль2()
?
PaulTmatik
Никакой. Проверка присвоения класса из Модуля2
Shaman
Модуль2 - модуль, а не класс, а Папка_модулей - обычный пакет, поскольку в ней __init__.py
PaulTmatik
Я еще пока в терминах не селен. похожая ситуация.

2 файла в корневой директории: test1.py и test2.py

содержимое test2.py
class Test2():
    def __str__(self):
        return 'test2'

содержимое test1.py
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

Почему этот модуль не может быть вызван?
Shaman
PaulTmatik
Почему этот модуль не может быть вызван?
А почему он должен вызываться?
PaulTmatik
Все разобрался. Я подгружаю модуль, но не вызываю объект.
так как у меня объект имеет одинаковое с файлом имя, вот я и запутался.

Надо было так:

from Папка_модулей import Модуль2
переменная = Модуль2.Модуль2()

а во втором случае
import test2
print(test2.test2())
Shaman
PaulTmatik
содержимое test1.py
import test2
print(test2())
Попробуйте:
import test2
print(test2.Test2)
print(test2.Test2())
Shaman
PaulTmatik
Все разобрался.
Отлично!
PaulTmatik
Модуль2 - модуль, а не класс
теперь я понял смысл этой фразы
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