0

所以,我有一些想与 python 一起使用的 C++ 库;它们被编译成一系列 .so 文件,我可以很好地导入它们。这些 .so 文件的从 C++ 到 python 的包装器由SIP生成。

但是,我喜欢将 Emacs 用作开发环境,并且诸如自动完成和正确检测包含等功能都不起作用。但是,我注意到其他 IDE 正确显示了模块中可用的自动完成信息。我不知道如何将这些信息输入 emacs,而且我目前不知道其他 IDE 是如何获取它的(也许检查扩展模块?)。

基本上,我想要的信息是加载模块时从解释器级别向用户提供的信息,然后通过生成的 SIP 包装器调用该模块导出的内容的帮助。

我不确定 SIP 是否会从我为我正在使用的库中拥有的 .sip 文件生成一个 .py 文件,但如果是这样,那么如果有人告诉我,我会很高兴,因为我确实看过。

第一次编辑

我正在使用 CEDET 包中的 emacs 语义工具。在我的 .emacs 中,我有两行使用 setenv 添加环境变量 PYTHONPATH 和 LD_LIBRARY_PATH,这样当在 emacs 下生成 python shell 来控制进程时,它可以获取这些外部库。通过一些设置语义-python-依赖-系统-包含路径的调用,我有相同的对应目录可用于语义。

第二次编辑 我发现我正在使用的库是如何为它的 gui 提供自动完成支持和语法检查信息的。它正在加载一个 .api 文件,这是该 .api 文件包含的内容的示例:

tulip.tlp.EDGE_TYPE?10 tulip.tlp.DIRECTED?10 tulip.tlp.INV_DIRECTED?10 tulip.tlp.UNDIRECTED?10 tulip.tlp.ElementType?10 tulip.tlp.NODE?10 tulip.tlp.EDGE?1​​0

这是 .api 文件其余部分的要点!

我该怎么做才能让 emacs 看到 SIP 生成的包装器公开了哪些功能?

4

0 回答 0