带有 Python C 扩展模块的 VSCode Intellisense (petsc4py)

问题描述 投票:0回答:1

我目前正在使用一个名为 petsc4py 的 Python 模块(https://pypi.org/project/petsc4py/)。我的主要问题是,所有典型的智能感知功能似乎都不适用于此模块。

我猜这可能与它是一个 C 扩展模块有关,但我不确定为什么会发生这种情况。我最初认为智能感知无法查看“.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()
效果非常好。

python visual-studio-code intellisense python-c-api petsc
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.