Очень простой вопрос по python импорту, функциям, подкаталогам - PullRequest
1 голос
/ 26 января 2020

У меня очень простой проект python, но я не могу заставить его работать.

В каталоге с именем "demo" у меня есть файл с именем "demo.py", читающий:

#!/usr/bin/python
from calc import plus
print(plus(1, 4))

У меня также есть подкаталог с именем "cal c" со следующими файлами:

__init__.py
minus.py
plus.py

init .py пуст, тогда как «minus.py» и «plus.py» читаются соответственно:

def minus(a, b):
  return a - b

и

def plus(a, b):
  return a + b

Когда я запускаю demo.py, я получаю ошибку:

Traceback (most recent call last):
  File "./demo.py", line 3, in <module>
    print(plus(1, 4))
TypeError: 'module' object is not callable

Это должно быть что-то нелепо простое, но я просто не могу понять это.

Любая помощь и совет будут высоко оценены.

Приветствия

1 Ответ

3 голосов
/ 26 января 2020

Вам нужно исправить импорт.

У вас есть файл и одна функция с тем же именем, затем вам нужно импортировать модуль (файл) и после импорта функцию.

from calc.plus import plus

Или укажите свой init.py

https://docs.python.org/3/tutorial/modules.html

...