首页 > 解决方案 > 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通过单击它来导航到定义。但是,在运行或调试时,我从import.attention.py

ImportError: cannot import name 'my_func'

是因为助手模块在根目录中吗?

如果相关,我在 macOS 的 Conda 环境中运行 Python 3.6。

更新:我的代码中只有一个helpers.py,但其他库中的其他: 在此处输入图像描述

更新 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),它就像那样工作!为什么?

标签: python

解决方案


推荐阅读