我目前正在使用一个名为 petsc4py ( https://pypi.org/project/petsc4py/ ) 的 python 模块。我的主要问题是,典型的智能感知功能似乎都不适用于这个模块。
我猜这可能与它是一个 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()
在此示例中,当尝试使用Vec
petsc4py 中的对象时,doingu_p.duplicate()
找不到函数,建议只是重复之前的函数。但是,使用array
from numpy,u_n.copy()
效果很好。