VSCode Itellisense с модулем расширения Python C (petsc4py) - PullRequest
0 голосов
/ 05 июня 2019

В настоящее время я использую модуль 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() работает отлично.

example with petsc4py example with numpy

1 Ответ

0 голосов
/ 05 июня 2019

Если вы компилируете на месте, вы наталкиваетесь на https://github.com/microsoft/python-language-server/issues/197.

...