Trae 下安装 Pylance 插件(仅作为实验,版权由微软所有)

背景

基于 VSCode 改版但使用 Open VSX 的编辑器(如 trae、Cursor)会遇到以下限制1

微软官方插件(Pylance/Remote SSH/C#工具链等)仅在 Microsoft Marketplace 分发,这些闭源插件不会同步到 Open VSX 仓库。Pylance 的智能补全、类型检查等高级功能将缺失。

官方建议的用 pyright 来代替2 3,但是 pyright 远不如 pylance,缺失后非常不方便。观察到官方文档4有如下图:
在这里插入图片描述
可以推测,其实 trae 可以装上 Pylance插件。经过实验,发现确实trae可以使用 pylance 的老版本。

免责声明:根据微软官方的声明,pylance 仅被授权于使用于 VS Code 中,其他使用均未被授权,本文的方法不得被用于任何侵犯微软版权的活动中。

0. Trae 环境准备

主要思路是仿照在基于VS code 的开源软件 VSCodium 里安装 Pylance 插件5

  • 找到 trae 安装目录,如 F:\Programs\Trae\resources\app\
  • 修改 product.json(可以先进行备份):

将其中的

	"extensionsGallery": {
		"serviceUrl": "https://open-vsx.org/vscode/gallery",
		"controlUrl": "https://lf3-static.bytednsdoc.com/obj/eden-cn/lkpkbvsj/ljhwZthlaukjlkulzlp/marketplace/controlUrl.json",
		"searchUrl": "https://open-vsx.org/vscode/gallery/extensionquery"
	},

改为:

	"extensionsGallery": {
		"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
		"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
		"itemUrl": "https://marketplace.visualstudio.com/items"
	},

这里的作用是将插件更新的连接全部指向 VS Code官方的插件市场。

1. 从VSCode市场获取插件安装包

这里需要从VSCode市场手动获取安装包6

  • 访问VSCode插件市场,搜索目标插件(Pylance);
  • 进入插件详情页,点击Version History查看历史版本;
  • https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance 中提取关键参数:
    • itemName字段拆分为:fieldA=ms-pythonfieldB=vscode-pylance
    • 选择兼容版本号 (如 2023.9.10

笔者得到的下载链接为:

https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/vscode-pylance/2023.9.10/vspackage

2. 直接安装插件至Trae会失败

浏览器打开上述链接,会自动下载.vsix文件,得到 ms-python.vscode-pylance-2023.9.10.vsix 文件。

但是此时如果打开Trae,进入插件市场,然后拖拽下载的.vsix文件至插件面板安装,会报错:
请添加图片描述
即:

Installation failed
Currently, ms-python.vscode-pylance is not supported for installation

因此不能直接这样安装。注意,如果这种安装方式出现另一个错误:

End of central directory record signature not found. Either not a zip file, or file is truncated.

则说明文件没有下载完整,请重新下载。

3. 解压 vsix 文件

  • 保持 Trae 打开,并在项目中任意打开一个python文件,左边栏停留在插件市场的界面。

  • ms-python.vscode-pylance-2023.9.10.vsix 文件 解压 提取到 ms-python.vscode-pylance-2023.9.10 文件夹:
    请添加图片描述

  • 然后将 extension 文件夹里的所有文件复制到本目录下:
    请添加图片描述

  • 修改 package.json,将 "displayName": "Pylance" 改为 "displayName": "Pylance-trae" (避免Trae识别到pylance)。

  • 进入此时 dist 文件夹下,复制一个 extension.bundle.js 作为部分,然后新建一个空白的 extension.bundle.js 7
    在这里插入图片描述

4. 直接移动安装

  • 还是保持 Trae 打开,并在项目中任意打开一个python文件,左边栏停留在插件市场的界面。
  • ms-python.vscode-pylance-2023.9.10 文件夹 移动至 trae 的插件目录 C:\Users\你的用户名\.trae\extensions
    在这里插入图片描述
  • 此时会发现,已安装的插件里会自动更新出现 Pylance-trae 插件:
    在这里插入图片描述
  • trae 的插件目录 C:\Users\你的用户名\.trae\extensions 下的 extensions.json 里面会自动多一项:

,{“identifier”:{“id”:“ms-python.vscode-pylance”},“version”:“2023.9.10”,“location”:{“$mid”:1,“fsPath”:“c:\Users\xxx\.trae\extensions\ms-python.vscode-pylance-2023.9.10”,“_sep”:1,“external”:“file:///c%3A/Users/xxx/.trae/extensions/ms-python.vscode-pylance-2023.9.10”,“path”:“/c:/Users/xxx/.trae/extensions/ms-python.vscode-pylance-2023.9.10”,“scheme”:“file”},“relativeLocation”:“ms-python.vscode-pylance-2023.9.10”}

注意,这里在移动文件夹之后笔者的 trae 是自动更新到了插件。没有出现说明失败了。

  • 最后重启 trae,即可享受 pylance 插件的丝滑。

在这里插入图片描述


参考文献:


  1. 使用 trae、cursor 这些魔改版的 vscode 是不是无法使用微软第一方的插件 Pylance 了? ↩︎

  2. 对原 vs code 支持的插件不支持,如 Pylance 高亮代码 #185 ↩︎

  3. Pylance not available #38 ↩︎

  4. Trae官方文档管理插件 ↩︎

  5. Solution to Pylance not working with VSCodium #1641 ↩︎

  6. Trae如何导入VSCode插件?三种方法详解 ↩︎

  7. VSCodium无法使用新版Pylance的解决方法 ↩︎

### 如何在T Rae中安装插件 目前,关于T Rae的具体插件安装流程并未直接提及于所提供的引用内容中。然而,可以从其他相关内容推断出一些可能适用的原则和技术背景。 #### 已知技术背景 大型语言模型(LLMs)的插件功能通常依赖于特定框架的支持以及对齐训练的效果[^4]。例如,在某些情况下,插件的功能可以通过零样本学习能力自然涌现出来,而无需额外的数据标注或显式的工具使用指导[^1]。这表明,即使没有专门针对某一具体任务进行调整,经过良好对齐的大规模预训练模型也可能具备执行复杂任务的能力。 对于实际应用层面而言,如果要实现类似于OpenAI所描述的那种能够自发产生新技能的学习机制,则往往需要经历如下几个阶段之一:首先是基于大量高质量样例基础上完成指令微调工作[^2];其次是探索不同形式的距离度量算法来优化路径规划等相关计算过程[^3]——尽管后者看起来更偏向地理信息系统领域而非通用意义上的软件开发环境配置向导文档编写范畴之内。 因此,在缺乏官方说明的情况下尝试自行搭建支持外部扩展程序加载运行环境时,请务必注意以下几点: - **确认目标平台版本兼容性** 确保当前使用的T Rae版本确实允许第三方模块接入,并查阅相应开发者手册获取必要的API接口定义细节信息。 - **遵循安全规范** 任何新增组件都可能存在潜在风险因素,所以在引入之前应当仔细评估其可信程度并通过沙盒隔离等方式加以防护以免造成不必要的损害。 以下是假设性的Python脚本片段用于模拟简单的包管理器行为模式作为参考示例: ```python import os from urllib.request import urlretrieve def install_plugin(plugin_name, plugin_url): try: print(f"正在下载 {plugin_name}...") local_filename, _ = urlretrieve(plugin_url) # 假设这里有一个函数可以验证文件签名 verify_signature(local_filename) installation_path = f"/path/to/t-rae/plugins/{plugin_name}" if not os.path.exists(installation_path): os.makedirs(installation_path) new_file_location = os.path.join(installation_path, os.path.basename(plugin_url)) os.rename(local_filename, new_file_location) print(f"{plugin_name} 安装成功!") except Exception as e: print(f"发生错误: {str(e)}") # 调用示例 install_plugin('example-plugin', 'http://example.com/downloads/example-plugin.tar.gz') ``` 上述代码为示意用途,真实场景下还需要考虑更多边界条件处理逻辑等内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyywxk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值