python - 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)
,它就像那样工作!为什么?
解决方案
推荐阅读
- php - 在 php 中即时更改 zip 文件注释
- ruby-on-rails - Rails Webpacker 看不到 process.env 变量
- c# - 将比特币私钥添加到 Azure Key Vault
- java - 资源以错误的顺序插入
- c++ - 处理基类和派生类时如何正确编写c++ makefile
- yaml - 使用 YAML 元数据块为 pandoc 转换声明任意变量
- java - 将 int[][] 作为通用参数传递
- javascript - 可调整大小的 html 元素
- python - Django 自定义用户 --- 在管理员中编辑新的自定义用户字段
- javascript - 内容更改时动画更改 div 的大小