【问题标题】:VSCode Itellisense with python C extension module (petsc4py)带有 python C 扩展模块的 VSCode Itellisense (petsc4py)
【发布时间】:2019-06-05 15:42:40
【问题描述】:

我目前正在使用一个名为 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()

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 2011-01-29
    • 2011-03-31
    • 2010-12-13
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多