带有python C扩展模块的VSCode Itellisense(petsc4py)

时间:2019-06-05 15:42:40

标签: python visual-studio-code intellisense python-c-api petsc

我当前正在使用一个名为petsc4py(https://pypi.org/project/petsc4py/)的python模块。我的主要问题是该模块似乎无法使用典型的智能感知功能。

我猜想它可能与C扩展模块有关,但我不确定为什么会这样。我最初以为intellisense无法在“ .so”文件中查找,但似乎numpy可以使用array对象执行此操作,在我的情况下,该对象位于名为multiarray.cpython-37m-x86_64-linux-gnu的文件中(请参见下面的示例)。

有人知道为什么我在petsc4py模块中看到此行为。我(或petsc4py的开发人员)可以做些什么来使智能感知工作?

示例:

import sys
import petsc4py
petsc4py.init(sys.argv)
from petsc4py import PETSc

x_p = PETSc.Vec().create()
x_p.setSizes(10)
x_p.setFromOptions()

u_p = x_p.duplicate()


import numpy as np

x_n = np.array([1,2,3])
u_n = x_n.copy()

在此示例中,当尝试使用petsc4py中的Vec对象时,执行u_p.duplicate()无法找到该函数,并且建议只是对该函数的重复。但是,使用numpy中的array来完成u_n.copy()会很好。

example with petsc4py example with numpy

1 个答案:

答案 0 :(得分:0)

如果您是就地编译,那么您将遇到https://github.com/microsoft/python-language-server/issues/197