当前位置: 首页 > news >正文

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

目录

  • 背景
  • 0. Trae 环境准备
  • 1. 从VSCode市场获取插件安装包
  • 2. 直接安装插件至Trae会失败
  • 3. 解压 vsix 文件
  • 4. 直接移动安装
  • 参考文献:

背景

基于 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的解决方法 ↩︎

相关文章:

  • 【lerobot】3-开源SO-100 主从臂的舵机位置校正、遥控操作(ubuntu系统)
  • 基于图扩散小波的连接组分析:定位结构-功能映射中的扩散源
  • docker部署GPUStack【Nvidia版本】
  • 【Hot100】239. 滑动窗口最大值
  • Express中间件(Middleware)详解:从零开始掌握(4)
  • 高级java每日一道面试题-2025年4月07日-微服务篇[Nacos篇]-如何监控Nacos的运行状态?
  • 深入探究AI编程能力:ChatGPT及其大规模模型的实现原理
  • 纯PHP编写的聊天室无需数据库,上传虚拟空间就可使用
  • 【PostgreSQL教程】PostgreSQL 特别篇之 语言接口连接PHP
  • [LeetCode 45] 跳跃游戏2 (Ⅱ)
  • Python高级爬虫之JS逆向+安卓逆向1.4节:数据运算
  • Solidity私有函数和私有变量区别,私有变量可以被访问吗
  • 在轨道交通控制系统中如何实现μs级任务同步
  • KiCad 9.0:如何在 PCB 上暴露铜皮(开窗)
  • go中new和make有什么异同?
  • [LeetCode 1306] 跳跃游戏3(Ⅲ)
  • AD利用转换工具快速生成异形焊盘
  • 从Ampere到Hopper:GPU架构演进对AI模型训练的颠覆性影响
  • TLA:用于接触-丰富操作的触觉-语言-动作模型
  • Profibus DP转ModbusTCP网关通讯案例解析
  • 上海地铁18号线二期长轨贯通,预计今年年底开通初期运营
  • 工信部:加快推进6G技术研发等,前瞻布局和培育面向6G的应用产业生态
  • 喝水呛咳?帕金森患者的吞咽障碍看这一篇就够了
  • 地铁口被吐槽像棺材?杭州地铁公司回应:是一个标志性出入口
  • 打捞一条文学传统的暗线
  • 神二十船箭组合体转运至发射区