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

目录

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

背景

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

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

官方建议的用 pyright 来代替[2](#2) [3](#3),但是 pyright 远不如 pylance,缺失后非常不方便。观察到官方文档[4](#4)有如下图:

可以推测,其实 trae 可以装上 Pylance插件。经过实验,发现确实trae可以使用 pylance 的老版本。

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

0. Trae 环境准备

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

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

将其中的

bash 复制代码
	"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"
	},

改为:

bash 复制代码
	"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](#6)

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

笔者得到的下载链接为:

bash 复制代码
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](#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的解决方法 ↩︎

相关推荐
夕水10 小时前
好消息,好消息,前端可以使用免费的ai模型构建一个ai聊天会话了
vue.js·trae
隔壁小查13 小时前
【后端开发】Spring配置文件
java·spring·microsoft
创码小奇客14 小时前
MongoDB 增删改查:从青铜到王者的全攻略
java·mongodb·trae
石小石Orz1 天前
颠覆常规!3 种方式打造圆环组件,不用 ECharts 也能玩出花
trae
微小冷1 天前
微软出品的AI Toolkit,在VS Code中使用DeepSeek
人工智能·microsoft·插件·vs code·deepseek
whoisi22221 天前
用Trae做一个Roguelike爬塔游戏
人工智能·ai编程·trae
汪子熙1 天前
使用 Trae 快速上手微信小程序开发
人工智能·trae
用户4099322502122 天前
FastAPI依赖注入性能优化策略
后端·ai编程·trae
冒泡的肥皂2 天前
后端开发用Trae做了几个前端demo(感觉很棒
ai编程·trae