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

相关推荐
千逐687 小时前
多物理场耦合气象可视化引擎:基于 Flutter for OpenHarmony 的实时风-湿-压交互流体系统
flutter·microsoft·交互
吹牛不交税8 小时前
安装Framework4.0时提示:Microsoft .NET Framework 4 已是此操作系统的一部分。不需要安装 .NET Framework
microsoft·.net
飞哥数智坊10 小时前
TRAE Friends@济南第3场圆满落幕,一次技术平权的具象化冲击
ai编程·trae
wfserial21 小时前
c#使用微软自带speech选择男声仍然是女声的一种原因
microsoft·c#·speech
山岚的运维笔记1 天前
SQL Server笔记 -- 第20章:TRY/CATCH
java·数据库·笔记·sql·microsoft·sqlserver
凯子坚持 c1 天前
CANN 性能剖析实战:从原始事件到交互式火焰图
windows·microsoft
玄同7651 天前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
穿过锁扣的风1 天前
一文搞懂 SQL 五大分类:DQL/DML/DDL/DCL/TCL
数据库·microsoft·oracle
山岚的运维笔记2 天前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
鸽芷咕2 天前
为什么越来越多开发者转向 CANN 仓库中的 Python 自动化方案?
python·microsoft·自动化·cann