如何修复PyDev中的“从导入中未定义变量”错误?

141

我有一个使用PyDev在Eclipse中的Python项目,PyDev会为我的代码生成错误报告。我有一个名为settings的模块,用于定义一个settings对象。我在b模块中导入该模块,并使用以下命令分配一个属性:

from settings import settings
settings.main = object()

在我的一些代码中——但并非全部代码,存在这样的语句:

from settings import settings
print settings.main 

即使代码可以正常运行,但在Eclipse代码错误面板中会生成“从导入中未定义的变量:main”的消息。 我该如何纠正这些错误?


我在这些答案中没有看到与pylint相关的内容:\ 我认为这就是这个通知的来源,我希望找到如何告诉pylint那不是变量,而是一个导入的方法。 - ThorSummoner
13个回答

0
在项目资源管理器中右键单击出现错误的任何模块。转到PyDev->删除错误标记。

0

你可能只需要在Eclipse中重新配置Python路径。请参考我对类似问题的答案


0

我发现以下两个步骤对我来说总是有效的:

  1. 确认(否则添加)模块的父文件夹到PYTHONPATH。
  2. 将模块的完整名称添加到强制内置中。

需要注意的事项:

  • 一些流行的模块安装时会有一些具有相同名称的父子对。在这些情况下,除了已经确认/添加的祖父文件夹之外,您还必须将该父文件夹添加到PYTHONPATH中。

  • 在添加到强制内置时,请使用(例如)“google.appengine.api.memcache”,而不是仅使用“memcache”,其中“google”在此示例中是定义在PYTHONPATH中的一个文件夹的直接子文件夹。


我该如何将lib.site-packages._pytest添加到强制内置中... 它不接受 '-' 符号... 我在 config 模块中遇到了导入问题,并尝试执行您的解决方法,请帮忙。 - zeal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接