我正在努力熟悉pydrake
库,它是围绕一个名为Drake的C++库的python绑定。我在virtualenv
中安装了带有pip
的库,并在VSCode中对其进行了修补。不幸的是,我无法完成大多数符号的代码,这让我很难知道:
- 每个(子(模块中有哪些符号
- 每个函数获取和返回的参数是什么
我目前的工作流程是在线浏览C++/Python API,它可以工作,但有点繁琐。
我试着用编辑settings.json
"python.autoComplete.extraPaths": [
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/",
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/lib/",
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/common/",
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/manipulation/"
...
],
"python.analysis.extraPaths": [
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/",
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/lib/",
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/common/",
"${workspaceFolder}/venv/lib/python3.8/site-packages/pydrake/manipulation/"
...
]
这是基于https://github.com/microsoft/vscode-python/issues/7736#issuecomment-537620794,因为这些文件夹包含cpython.so
文件。这对我不起作用。
有可能为此获得智慧吗?
其他重要细节:
- Ubuntu 20.04 5.15.0-48-generic
- VSCode版本:1.71.2 74b1f979648cc44d385a2286793c226e611f59e7
- Python扩展版本:v2022.14.0
- drake版本:
drake==1.8.0
请参阅https://github.com/RobotLocomotion/drake/issues/16987.这是一项正在进行的工作。
截至今天(2022-Sep-26(,pydrake
库尚未为VSCode自动完成提供*.pyi
文件。
通常,您可以尝试运行像stubgen
这样的工具,从本机*.so
文件自动生成*.pyi
文件,然后使用这些文件自动完成,但对于pydrake
,这些工具还不了解我们的模板,因此结果不是很有用。
同时,基于Jupyter的编辑器(例如Deepnote(通常会自动正确地完成本机代码。只有VSCode的病毒保护姿态——不加载本机代码进行自动完成——才妨碍了你。