专栏名称: 编程派
Python程序员都在看的公众号,跟着编程派一起学习Python,看最新国外教程和资源!
目录
相关文章推荐
Python爱好者社区  ·  梁文锋和杨植麟,论文撞车了!! ·  昨天  
Python开发者  ·  上万点赞!使用 Cursor AI 编程的 ... ·  2 天前  
Python开发者  ·  成人玩偶 + ... ·  3 天前  
Python爱好者社区  ·  刚刚,DeepSeek放出重磅论文!梁文锋亲 ... ·  4 天前  
Python爱好者社区  ·  吴恩达,yyds ·  4 天前  
51好读  ›  专栏  ›  编程派

如何开发一个 PyCharm 插件?

编程派  · 公众号  · Python  · 2017-07-13 11:30

正文

PyCharm 是很多 Python 开发者优先选择的 IDE,功能强大,跨平台,提供免费社区版,非常良心。如果你想自己给 PyCharm 添加一些功能怎么办呢?有两个办法:

  1. 通过提需求实现,到 JetBrains 的 github 去提 issue 或者自己发 Pull Request 请他们 merge。

  2. 通过安装插件实现,你可以查找现有的 插件仓库,或者,自己写一个。

今天我们说说怎么搭建环境自己写一个 PyCharm 插件。

前期准备

先普及一下知识,开发 PyCharm 插件和开发 IntellJ IDEA 插件需要的环境是一样的,因为 PyCharm 本身就是 IDEA 的一个子集,说白了就是 IDEA 上套了一个 Python 语言支持的插件。其他系列的 IDEA IDE 其实也是一样的道理,都是套了对应语言支持的框架外加一点外观修改,就成了新的产品,比如 WebStrom,PhpStorm,RubyMine。到这里你应该有个印象,JetBrains 这个公司太能玩了,就一个 IDEA 能整出那么多产品来,很厉害吧?

开发 PyCharm 插件你需要:

  • 对 Java 语言有一定了解,因为你只能用 Java 开发插件

  • 安装最新版的 IntelliJ IDEA

  • 安装 PyCharm Community Edition 到本地

  • 确保 IntelliJ 安装并启用了 Plugin DevKit 插件,默认自带

  • 配置 IntelliJ Platform SDK, 下文会涉及相关步骤

  • (非必需)将 IntellJ IDEA Community Edition 的代码克隆到本地,方便调试

如果你英文还可以,也可以阅读官方的帮助文档。

  • http://www.jetbrains.org/inte...

新建插件工程

从文件菜单选择 New Project , 选择 IntelliJ Platform Plugin ,如果你没有配置 SDK ,点击 New 菜单。

选择你本地 PyCharm Community Edition(社区版)的安装路径作为 SDK 目录,Java SDK 选择 1.8 以上的版本。

请注意,你也可以使用 PyCharm Professional (旗舰版) 的安装路径作为 SDK 目录,不过当你调试插件碰到核心代码时,社区版你可以一步一步跟到最里面,但旗舰版不行,因为旗舰版并不是开源的,你拿不到源代码。


回到 New Project 的界面,点击 Next ,输入 Project name Project location ,点击完成。


小贴士: 如果你是打开别人的写的插件,那么你直接选择打开工程目录是没有用的,因为 IntelliJ IDEA 不认为这是个插件工程,所以你没法运行和调试这个插件,一个不怎么优雅的办法就是 从现有代码新建一个插件工程 ,StackOverflow 关于这个的吐槽问题你搜到,如果你有更好的办法请告诉我。当你换一台机器把插件代码克隆下来之后应该就知道我在说什么了。

插件工程目录结构

一个典型的插件目录结构就像下图。

  • .idea 目录 - JetBrains IDE 生成的工程都会有这么一个目录,存放用户配置和缓存,无需关心。

  • doc 目录 - 插件的文档,可选。

  • out 目录 - 编译后的代码字节,无需关心。

  • resources 目录 - 资源存放目录,插件的配置文件在此。

  • src 目录 - 代码存放的位置。

  • *.iml 文件 - 项目的配置文件。

修改插件信息

打开 /resources/ META - INF / plugin . xml , 更新插件信息,举例说明。

  1. version="2">

  2.    com.eflabs.plugin.efcommon

  3.    EF Common for PyCharm

  4.    3.1

  5.     email="[email protected]">Toby Qin

  6.    

  7.      Able to run and debug ef common tests easily.

  8.      

  9.      

    •      

    • Support run/debug ef-common tests via context menu.

    •      

    • Show run button in the line of test case.

    •      ]]>

    •    

    •    

    •      v3.0

    •      

      Support PyCharm 171.*

    •      

      Support nested ef-common project.

    •      

    •      Early version

    •      

      Bug fix: failed to get run.template in resource.

    •      

      The baby version.

    •      
      ]]>

    •    

    •    

    •     since-build="171.1"/>

    •    

    •    com.intellij.modules.python

    •     defaultExtensionNs="com.intellij">

    •        

    •         implementation="com.eflabs.efcommon.runConfiguration.EfCommonConfigurationType"

    •                           order="FIRST"/>

    •         implementation="com.eflabs.efcommon.runConfiguration.EfCommonConfigurationProducer"

    •                                  order="FIRST"/>

    •        

    •                implementationClass="com.eflabs.efcommon.runLineMarker.EfCommonRunLineMarkerContributor"

    •                language="Python"/>

    •    

    •    

    •        

    •    







请到「今天看啥」查看全文