「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs
BBT:Bulletin Board Time,百家讲坛,网络作者自由发声之渠道,文章内容不代表本号观点。
近期我一直在 VSCode 开发 GHPython,但是 Code Listener + Rhino Python 的方案总是无法正确地执行自动完成,重新配置也非常费力,总感觉在环境搭建上并不是那么完美。
不过 McNeel 其实有提供一个名为 Rhino-stubs 的环境搭建方案,可惜它在 McNeel 的 126 个开源项目中并不起眼,所以用的人也不多,它只需要一行 pip 指令,就能自动在 VSCode 中搭建好 GHPython 开发环境,经测试,应该是目前众多本地环境搭建方案中最便捷的一种。
所以,今天所长就手把手教你用 Rhino-stubs 搭建 GHPython 开发环境。
1. 配置 Python 环境
conda create -n RhinoPython python=3.9
Proceed 按 y,回车:
就能够建立好一个名为 RhinoPython 的全新 Python 3.9 环境。
接下来,你需要 激活 RhinoPython,并在这个环境里安装 Rhino-stubs
3. 激活 RhinoPython,安装 Rhino-stubs
在 cmder 中输入代码:
conda active RhinoPython
此时如果你的输入行括号中显示(RhinoPython),说明你已经激活了 RhinoPython 环境,现在你可以在这个环境中安装 Rhino-stubs,只需在 cmder 中键入:
pip install Rhino-stubs
稍等片刻,程序会一并把 Rhino-stubs、GH-Util-stubs、GH-IO-stubs、 Grasshopper-stubs 都安装好,熟悉 Grasshopper 开发的朋友们应该一眼就能看出来,这和开发 Rhino 和 Grasshopper 的四个核心 .dll 文件是一样的:
4. 在 VSCode 中安装 Python 插件
配置完 RhinoPython 环境和安装完 Rhino-stubs 之后,打开 VSCode,在插件搜索框中搜索关键字 Python ,安装第一个名为 Python 的插件,有了这个插件,VSCode 中的 Python 才能够自动完成:
在 VSCode 中下按 F1,找到 Select Interpreter(选择解释器),选中你刚刚创建的 RhinoPython 环境,只有选中了这个环境,VSCode 才能在 Python 插件的加持下,检测到你刚刚安装进这个环境中已的 Rhino-stubs(其它环境并没有 Rhino-stubs),并帮你实现自动完成。
由于你已经在 RhinoPython 中安装好了包括 Rhino-stubs 和 Grasshopper-stubs 在内的开发包,所以此时你的 VSCode,已经能帮你实现 Rhino Common 和 Grasshopper API 相关内容的自动完成了。
令人潸然泪下的自动完成,甚至连参数类型是什么都告诉你
5. 找到 rs 库的路径
因为这个路径下有这个文件:
6. 将路径添加进 Python 插件的检测设置中
在 VSCode 中,点击 File - Preference- Settings:
在界面中找到 Extensions - Python,这里便是 Python 插件的设置,其中 Auto Complete: Extra Pathes,便是该插件自动完成的相关设置,点击 Edit in settings.json,便可编辑相关路径,实现自动完成:
{
"workbench.iconTheme": "material-icon-theme",
"editor.unicodeHighlight.includeStrings": false,
"editor.unicodeHighlight.includeComments": false,
"explorer.confirmDragAndDrop": false,
"explorer.confirmDelete": false,
"python.defaultInterpreterPath": "C:\\Users\\vctcn93\\.conda\\envs\\RhinoPython\\python.exe",
"python.autoComplete.extraPaths": [
"C:\\Users\\vctcn93\\AppData\\Roaming\\McNeel\\Rhinoceros\\7.0\\Plug-ins\\IronPython (814d908a-e25c-493d-97e9-ee3861957f49)\\settings\\lib"
]
}
Code Listener:https://www.food4rhino.com/en/app/code-listener
Rhino-stubs:https://github.com/mcneel/pythonstubs
Help With Rhino-stubs:https://discourse.mcneel.com/t/help-with-rhino-stubs/125899
喜欢请转发、在看、点赞👍