PyDev对两个变量中一个的导入显示未定义变量
问题
我有以下的结构:
home.py
logic/brains/databeam.py
在 databeam.py
文件里,我有:
engine = create_engine(databaseSettings(), pool_size = 20, max_overflow = 0)
Session = sessionmaker(bind = engine)
session = Session()
boom = 'boom'
而在 home.py
里:
from logic.brains.databeam import session, boom
print session
print session.query()
print boom
一切都按预期工作,但在 Eclipse 的 PyDev 中却显示了这个:
这种情况发生在……
当我不使用 from logic.brains.databeam import session as session, boom as boom
,而是这样做时:
import logic.brains.databeam
session = logic.brains.databeam.session
boom = logic.brains.databeam.boom
不过这样看起来不太整洁,有没有更好的方法让 PyDev 知道这个导入是有效的?
4 个回答
1
@Lars,我无法在之前的帖子下评论,所以我就在这里留言。如果你遇到“从导入中未定义的变量”这样的错误,就像@Morgan Wilde在查询中遇到的那样,你应该在“未定义”选项下而不是“导入”选项中放置警告。
2
这个脚本非常简单,但在Eclipse 2019-09版本和PyDev 8.1.0.202012051215中出现了相同的错误:
import re
flag = re.ASCII
看起来PyDev没有正确识别通过globals().update()导出的内容。下面的代码是等价的,并且在这种情况下可以正常工作:
import re
flag = re.RegexFlag.ASCII
1
我找到的一个比较合理的解决办法是,在 PyDev
中完全忽略这种错误。我知道这不是完美的解决方案,但这是我遇到的最好的办法。
如何更改这个设置: