vlambda博客
学习文章列表

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

BBTBulletin Board Time,百家讲坛,网络作者自由发声之渠道,文章内容不代表本号观点。

近期我一直在 VSCode 开发 GHPython,但是 Code Listener + Rhino Python 的方案总是无法正确地执行自动完成,重新配置也非常费力,总感觉在环境搭建上并不是那么完美。

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

不过 McNeel 其实有提供一个名为 Rhino-stubs 的环境搭建方案,可惜它在 McNeel 的 126 个开源项目中并不起眼,所以用的人也不多,它只需要一行 pip 指令,就能自动在 VSCode 中搭建好 GHPython 开发环境,经测试,应该是目前众多本地环境搭建方案中最便捷的一种。

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

所以,今天所长就手把手教你用 Rhino-stubs 搭建 GHPython 开发环境。


1. 配置 Python 环境

想要使用 VSCode 开发 Rhino Python,首先你先要安装一个完整的 Python 开发环境(包含 cmder、VSCode、Anaconda),如何配置一个完整的 Python 开发环境,请参见往期推文:
点击图片访问推文

2. 创造 RhinoPython 环境
在搭建好完整的 Python 环境之后,你需要用 Conda 为 RhinoPython 新建立一个空白的开发环境 —— 就像复制一个分身,使用分身的好处是能尽可能地精简掉环境中不需要的内容,避免多任务的臃肿和插件相互影响,确保只在一个环境下做好一件事。
开发者往往都会依照开发内容,新建一个纯净的 Python 环境,再根据需求往环境里安装需要的包,你只需要 cmder 中输入命令:
conda create -n RhinoPython python=3.9
「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

Proceed 按 y,回车:

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

就能够建立好一个名为 RhinoPython 的全新 Python 3.9 环境。

接下来,你需要 激活 RhinoPython,并在这个环境里安装 Rhino-stubs


3. 激活 RhinoPython,安装 Rhino-stubs

cmder 中输入代码:

conda active RhinoPython

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

此时如果你的输入行括号中显示(RhinoPython),说明你已经激活了 RhinoPython 环境,现在你可以在这个环境中安装 Rhino-stubs,只需在 cmder 中键入:

pip install Rhino-stubs

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

稍等片刻,程序会一并把 Rhino-stubsGH-Util-stubsGH-IO-stubs、 Grasshopper-stubs 都安装好,熟悉 Grasshopper 开发的朋友们应该一眼就能看出来,这和开发 Rhino 和 Grasshopper 的四个核心 .dll 文件是一样的:

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs


4. 在 VSCode 中安装 Python 插件

配置完 RhinoPython 环境和安装完 Rhino-stubs 之后,打开 VSCode,在插件搜索框中搜索关键字 Python ,安装第一个名为 Python 的插件有了这个插件,VSCode 中的 Python 才能够自动完成:

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

在 VSCode 中下按 F1,找到 Select Interpreter(选择解释器),选中你刚刚创建的 RhinoPython 环境,只有选中了这个环境,VSCode 才能在 Python 插件的加持下,检测到你刚刚安装进这个环境中已的 Rhino-stubs(其它环境并没有 Rhino-stubs),并帮你实现自动完成。

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

由于你已经在 RhinoPython 中安装好了包括 Rhino-stubs 和 Grasshopper-stubs 在内的开发包,所以此时你的 VSCode,已经能帮你实现 Rhino Common 和 Grasshopper API 相关内容的自动完成了。

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs令人潸然泪下的自动完成,甚至连参数类型是什么都告诉你


5. 找到 rs 库的路径

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

因为这个路径下有这个文件:

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs


6. 将路径添加进 Python 插件的检测设置中

在 VSCode 中,点击 File - Preference- Settings

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

在界面中找到 Extensions - Python,这里便是 Python 插件的设置,其中 Auto Complete: Extra Pathes,便是该插件自动完成的相关设置,点击 Edit in settings.json,便可编辑相关路径,实现自动完成:

「BBT」GHPython 的新型 VSCode 开发方式 — Rhino-stubs

{ "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


喜欢请转发、在看、点赞👍