Ошибка импорта Python: Я получаю ошибку при импорте функции из пакета.Ошибка импорта в test.py при выполнении mymath.multiply () - PullRequest
0 голосов
/ 27 сентября 2019

Это моя структура каталогов:

test.py
mymath/
    __init__.py
    mymath.py

test.py

import mymath
mymath.multiply()

__ init __. Py

from mymath
import multiply

mymath.py

def multiply():

Когда я запускаю:

python3 test.py

Я получаю ошибку:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    import mymath
  File "/home/kcb/python-scripts/mymath/__init__.py", line 1, in <module>
    from mymath import multiply
ImportError: cannot import name 'multiply'

1 Ответ

0 голосов
/ 27 сентября 2019

Когда вы запускаете python myscript.py, текущий каталог рабочего каталога добавляется в путь поиска вашего модуля, и, следовательно, все модули в этом каталоге импортируются.

Однако, когда mymath/__init__.py пытается выполнить from mymath import multiply, он не может найти mymath.py, потому что mymath/ не указан в пути поиска вашего модуля.

Лучшее решение - изменить mymath/__init__.py на другой оператор импорта:

from .mymath import multiply

Это означает «импорт multiply из модуля с именем mymath в том же каталоге, что и этот модуль

...