Nameerror: имя my_func не определено, несмотря на импорт

Я новичок в Python. Имею файл helpers.py (в корне) с

def my_func(integer, tokenizer):

и другая функция в models/attention.py (в подкаталоге models), которая вызывает эту функцию:

from helpers import my_func
....
def another_func(input_seq, tokenizer):
    some_val = my_func(index, tokenizer)

PyCharm вполне доволен, и я могу перейти к определению my_func, щелкнув по нему. Однако при запуске или отладке я получаю сообщение об ошибке из строки importattention.py.

ImportError: cannot import name 'my_func'

Это потому, что модуль помощников находится в корне?

Если это актуально, я запускаю Python 3.6 в среде Conda на macOS.

Обновлять: в моем коде только один helpers.py, а другие в разных библиотеках: enter image description here

Обновление 2: Я запускаю с evaluate.py в моем корне. Я добавил print(helpers.__file__), как было предложено, и получил ожидаемый путь:

/Users/nic/anaconda2/envs/nmt-keras/bin/python /Users/nic/git/nmt-keras/evaluate.py
Using TensorFlow backend.
/Users/nic/git/nmt-keras/helpers.py

Затем я изменил вызов на some_val = helpers.my_func(index, tokenizer), и он вот так работает! Почему?

находится ли ваш файл helpers.py в том же каталоге, что и вызывающий его скрипт?

Matina G 10.08.2018 15:32

Сообщение указывает, что он может найти модуль helpers, но не может найти внутри него my_func. Есть ли у вас какие-либо другие файлы с именем helper.py в каталоге вашего проекта или в PATH?

Kevin 10.08.2018 15:32

Спасибо MatinaG и Kevin - я добавил пояснения выше

Nic Cottrell 10.08.2018 15:38

Вы можете показать нам структуру вашего проекта?

Skam 10.08.2018 15:38

Попробуйте import helpers; print(helpers.__file__). Это может сказать вам, куда смотрит Python.

Kevin 10.08.2018 15:40
1
5
164
0

Другие вопросы по теме