配置VS代码了解ros包导入-Pylance导入错误

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

我正在将大量包导入到其他包中。 导入的包可以毫无问题地执行,因为我使用了 Python 安装程序和正确的结构。 但 VS 代码中的链接不起作用,Pylance 给我导入错误。

我有一个名为 happyspace 的工作空间。 dist-packages 的路径是

/home/flo/happyspace/devel/lib/python3/dist-packages

所以我将其添加到我的工作区配置中:

{
    "folders": [
        {
            "path": "."
        }
    ],
    "settings": {
        "editor.fontSize": 15,
        "[python]": {
            "editor.defaultFormatter": "ms-python.autopep8"
        },
        "python.formatting.provider": "none",
        "editor.defaultFormatter": null,
        "python.autoComplete.extraPaths": [
            "/home/flo/happyspace/devel/lib/python3/dist-packages",
            "/opt/ros/noetic/lib/python3/dist-packages"
        ],
        "python.analysis.extraPaths": [
            "/home/flo/happyspace/devel/lib/python3/dist-packages",
            "/opt/ros/noetic/lib/python3/dist-packages"
        ]
    }
}

但是,在将一个包导入到另一个包中时,例如在我位于

的execute_poses_record.py中

/home/flo/happyspace/src/fmp_tools/src/fmp_tools/execute_poses_record.py

线

from fmp_tracepen_node.tracepen_node import TracepenNode

出现错误

无法解析导入“fmp_tracepen_node.tracepen_node”PylancereportMissingImports (模块)fmp_tracepen_node

当要导入的文件位于

/home/flo/happyspace/src/fmp_tracepen_node/src/fmp_tracepen_node/tracepen_node.py

我刚刚意识到一件事!

更改导入结构

from fmp_tools.console_messager import ConsoleMessager

from fmp_tools.console_messager.src.console_messager import ConsoleMessager

导入错误消失了。

但是我不能再在 python 中导入包并得到真正的导入错误:

    from fmp_tools.src.fmp_tools.console_messager import ConsoleMessager ModuleNotFoundError: No module named 'fmp_tools.src'

另外当我添加

"/home/flo/happyspace/src/fmp_tools/src"
到我的 pyhton 路径,它解决了 pylance 错误。

/home/flo/happyspace/src/fmp_tools/src/fmp_tools/console_messager.py
也是我的 ros 包的 python 文件的结构。

我听说应该这样配置包,然后构建一个像这样的setup.py

from distutils.core import setup
from catkin_pkg.python_setup import generate_distutils_setup

d = generate_distutils_setup(
    packages=['fmp_tools'],
    package_dir={'': 'src'}
)

setup(**d)

这有错吗?

非常感谢您的帮助。

visual-studio-code package ros pylance
2个回答
1
投票

添加以下配置:

    "python.analysis.extraPaths": [
        "/home/flo/happyspace/src/fmp_tracepen_node/src"
    ],

0
投票

如果您安装了 PyLance,并且所有包都在 VS Code 工作区中,那么将会出现一个快速修复,允许您更改配置:

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