В настоящее время я использую модуль python под названием petsc4py (https://pypi.org/project/petsc4py/).). Моя основная проблема заключается в том, что ни одна из типичных функций intellisense не работает с этим модулем.
Я предполагаю, что это может быть как-то связано с тем, что он является модулем расширения C, но я точно не знаю, почему это происходит. Сначала я думал, что intellisense не может заглянуть в файлы ".so", но кажется, что numpy может сделать это с объектом array
, который в моем случае находится внутри файла с именем multiarray.cpython-37m-x86_64-linux-gnu
(см. Пример ниже) .
Кто-нибудь знает, почему я вижу такое поведение в модуле petsc4py. Могу ли я (или разработчики petsc4py) сделать что-нибудь, чтобы Intellisense заработал?
Пример:
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, выполнение u_p.duplicate()
не может найти функцию, и предложение - это просто повторение функции непосредственно перед этим. Однако, используя array
от numpy, выполнение u_n.copy()
работает отлично.
