如何解决在 PyDev 中支持 Eclipse EASE 指令
我将 Eclipse EASE (https://www.eclipse.org/ease/) 与 EASE Python 引擎一起使用。 问题是 PyDev 无法识别 EASE 指令。目标是获取或通过 include EASE 指令导入的 Python 模块和方法的错误以及来自此类模块的方法的完成。
AddReadMe.py
------------
loadModule('/System/Resources')
def fct_readme():
for iproject in getWorkspace().getProjects():
if not iproject.isopen():
continue
ifile = iproject.getFile("README.md")
if not ifile.exists():
contents = "# " + iproject.getName() + "\n\n"
if iproject.hasNature("org.eclipse.jdt.core.javanature"):
contents += "A Java Project\n"
elif iproject.hasNature("org.python.pydev.pythonNature"):
contents += "A Python Project\n"
writeFile(ifile,contents)
然后我有第二个 EASE Python 模块:
AnotherModule.py
----------------
include('script://AddReadMe.py')
fct_readme()
PyDev 编辑器显示 2 个错误:第一个是 include 语句,第二个是 fct_readme(),这是合乎逻辑的,因为 PyDev 不知道轻松包括说明。
是否可以使用一些 PyDev 扩展点来支持 EASE?哪一个?
最好的问候,
解决方法
嗯,这里有两个问题:
- PyDev 会根据您的配置方式进行代码分析,因此,您可能需要在此处为 PyDev 提供存根,以便能够在您的命名空间中找到所需的名称(在这种情况下,您需要为
System.Resources
--AddReadMe
不需要它,因为在这种情况下它应该能够找到实际来源)。 - PyDev 无法知道某些自定义
include()
或loadModule()
函数实际上执行了导入。
这里的一种选择是以预定义完成的形式为 PyDev 提供内置模块:https://www.pydev.org/manual_101_interpreter.html#PyDevInterpreterConfiguration-PredefinedCompletions(或创建 Python 模块存根文件)。
然后,为了让它真正找到,在 if False
中做一些导入(因此,PyDev 会在代码分析中考虑它,即使它不会被执行):
include('script://AddReadMe.py')
if False:
from AddReadMe import *
loadModule('/System/Resources')
if False:
from System.Resources import *
注意:确保您的源代码位于源代码模块下,以便代码分析/代码完成在那里正常工作 (https://www.pydev.org/manual_101_project_conf2.html)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。