NameError:名称'my_func'未定义

2024-10-16 20:39:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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定义。但是,在运行或调试时,我从attention.pyimport行得到一个错误。你知道吗

ImportError: cannot import name 'my_func'

是因为helpers模块在根目录中吗?你知道吗

如果相关的话,我在macOS上的Conda环境中运行python3.6。你知道吗

更新:我的代码中只有一个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),它就这样工作了!为什么?你知道吗


Tags: 函数pyimportmodelsmydefusershelpers