Repolode
davidhalter

davidhalter/jedi

一个 Python 静态分析库,提供自动补全、跳转定义、重构和代码搜索,常用于编辑器插件。

Star
6,186
Fork
549
未关闭 Issue
58
最近提交
5天前

这是什么?

Jedi 是一个面向 Python 的静态分析库,通常嵌入到 IDE 和编辑器插件中,用于提供自动补全和跳转定义功能。它的 API 可以在不运行程序的情况下,获取指定位置代码的补全候选、函数签名、文档、推断类型和引用信息。

除补全外,Jedi 还支持重命名、内联、提取函数、提取变量等重构操作,并能列出语法错误、枚举名称,以及在模块和项目范围内搜索代码。它可与 virtualenv 配合使用,IPython 也将其作为依赖内置使用。

Jedi 通过 jedi-vim、VS Code 的 Python 扩展等编辑器插件使用,也被 jedi-language-server、python-lsp-server 等语言服务器采用。它支持 Python 3.10 及以上版本,同时也能分析较旧版本的代码。

核心功能

  • 01为 Python 代码提供自动补全和跳转定义
  • 02在光标位置获取函数签名、文档和类型推断
  • 03支持重命名、内联、提取函数和提取变量等重构
  • 04在模块和项目范围内查找引用并搜索代码
  • 05支持 virtualenv 并可列出语法错误

适用场景

  • 为文本编辑器或 IDE 添加 Python 自动补全和代码导航
  • 作为 Python 语言服务器的底层分析引擎
  • 在 IPython 或 CPython 交互式命令行中启用补全
  • 编写脚本对 Python 项目进行自动重构或代码搜索

快速上手

  1. 1

    从 PyPI 安装 Jedi

    pip install jedi
  2. 2

    运行测试套件(可选):安装 pytest

    pip install pytest

使用前须知

  • 主要面向编辑器插件和自动补全场景,并非独立工具。
  • 作者已发布 Jedi 的继任者 Zuban。

标签

常见问题

jedi 是什么?
一个 Python 静态分析库,提供自动补全、跳转定义、重构和代码搜索,常用于编辑器插件。 Jedi 是一个面向 Python 的静态分析库,通常嵌入到 IDE 和编辑器插件中,用于提供自动补全和跳转定义功能。它的 API 可以在不运行程序的情况下,获取指定位置代码的补全候选、函数签名、文档、推断类型和引用信息。
jedi 可以免费使用吗?用的什么许可证?
jedi 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
jedi 还在维护吗?
活跃维护中。jedi 最近一次提交是在 2026年11月2日。
jedi 适合用来做什么?
为文本编辑器或 IDE 添加 Python 自动补全和代码导航 作为 Python 语言服务器的底层分析引擎 在 IPython 或 CPython 交互式命令行中启用补全 编写脚本对 Python 项目进行自动重构或代码搜索
jedi 怎么安装和运行?
从 PyPI 安装 Jedi: pip install jedi 运行测试套件(可选):安装 pytest: pip install pytest
在哪里获取 jedi?
源代码和安装说明在 GitHub 上:https://github.com/davidhalter/jedi

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目