关注我们并在后台回复 “进群”,即可加入农心生信工作室学习交流群,群内不定时分享源代码及示例文件,并在线交流答疑。我们在农心生信,等你!
由于微信改版,乱序推送,很多朋友反映收不到公众号推文。快跟着图片步骤,将农心生信公众号设为星标,不错过每一条精彩内容!!
本公众号已开通留言功能,欢迎大家直接在文末留言交流!
写在前面
农心生信已经陆陆续续开发了多个TBtools插件了,上个月陈老师特意邀请我们分享一下python的TBtools插件制作流程,其实陈老师已经有一个很详细的TBtools插件制作的教程了(手把手 | TBtools 插件开发入门~完全指南),但他认为每个人都有自己的制作心得,值得分享。这个月总算稍稍忙完了一堆事,正好抽空,用一个python脚本,分享一下如何制作基于Python实现的TBtools插件。
准备工作
因为我们要制作一个Windows系统下基于Python实现的TBtools插件,因此首先需要在电脑上安装一个Windows版本的Python并保证添加进环境变量。直接在python官网下载对应版本即可。在这里我们安装的是Python 3.11.2。
然后打开cmd,安装两个依赖的模块:
pip install virtualenv
pip install pyinstaller
安装好后,我们先使用virtualenv模块,virtualenv模块可以创造一个python的隔离环境,因为很多人在使用python过程中会安装越来越多的模块,不创造一个python的隔离环境,打包成插件后,插件会非常大。所以我墙裂建议大家使用virtualenv模块创造一个python的隔离环境。在这里,我们在E:\test下创造新环境new_env:
virtualenv new_env
pyinstaller模块的功能暂且按下不表,稍后会用到。
插件脚本
这几天看了付航的脱口秀,被一句“Passion”深深洗脑,所以 ,写了一个毫无意义的passion脚本,虽然没有意义,但可以输入文件、输出文件和选择模式,足够做一个插件。脚本内容如下:
import argparse
class SayPassionToWorldApp:
def __init__(self, input_file, output_file,mode_type):
self.input_file = input_file
self.output_file = output_file
self.mode_type=mode_type
def read_mode(self):
with open(self.input_file,'r')as file:
return
def write_message(self, message):
with open(self.output_file,'w')as file:
file.write(message)
def run(self):
if self.mode_type =='great':
message ='Passion'
else:
message ='F**king, and passion again'
self.write_message(message)
def main():
parser = argparse.ArgumentParser(description='Say passion to world !!!')
parser.add_argument('--input_file',type=str,help='The input file path')
parser.add_argument('--output_file',type=str,help='The output file path')
parser.add_argument('--mode',type=str, default="great",help='')
args = parser.parse_args()
app =SayPassionToWorldApp(args.input_file, args.output_file,args.mode)
app.run()
if __name__ =='__main__':
main()
脚本的功能是随意输入一个文件(这个文件没任何意义),模式选择有两种,一个是great,一个bad,不同模式下,输出文件会有不同内容。
打开TBtools,打开Plugin Creater插件(没有的直接去商店安装即可),界面如下:
我们先设计GUI界面,布局如下:、
这样的布局下,GUI界面会呈现下面的效果:
这里插件开发所用到的各种开发元件以及元件布局,陈老师之前已经有一篇很详细的推文介绍(手把手 | TBtools 插件开发入门~完全指南),这里不再赘述。我们今天主要介绍如何把一个python脚本打包成一个插件的实战过程。
下面我们点开上方这个标志:
弹出这样一个文本框:
把脚本直接粘贴进去,并给脚本命名:
根据脚本内容,在Arg一栏添加对应参数:
接下来,我们需要运行这个脚本,因此需要python解释器,你需要告诉TBtools在你的电脑上python在哪里。我们前面已经创造了一个python的孤立环境new_env,new_env所在就是python解释器目录:
上面的路径输入正确后,插件制作就完成了。我们看看整体设计和布局:
这个时候点击Export Plugin,保存插件即可。打包完成,由于我们创建了孤立环境,插件大小仅仅几百kb。
制作插件(方法2)
方法2是直接将python脚本打包成一个exe,这里用到了PyInstaller。PyInstaller将Python程序生成可直接运行的程序,这个程序就可以被分发到对应的 Windows 或 Mac OS X 平台上运行。
同方法1,还是推荐大家使用python的隔离环境。这里,需要打开cmd,在E:\test下,用命令行激活new_env,:
.\new_env\Scripts\activate
将我们的passion脚本,保存为SayPassionToWorld.py,依旧在E:\test下。使用下面的命令打包:
pyinstaller -D .\SayPassionToWorld.py
成果打包后,E:\test会有下面两个文件夹:
接下来,我们重新进入Plugin Creater插件界面,方法1中的GUI界面设计不需要更改,而且不需要把脚本粘贴进文本框,唯一需要更改的是解释器的路径,按下图修改:
此时,插件也制作完成。我们看看整体设计和布局:
同样,点击Export Plugin,保存插件即可。
两种方法亲测都可以制作出成功实现功能的插件!
写在最后
看完付航喜剧之王总决赛的舞台,难毕业的老博士生心里还是有了一些波动。
希望我们每个人都能做自己剧本里的主角,勇敢、坚强、激情!
不,那不是激情
那是Passion!!!!!!!!!!!!!!!!!!!!
END
编辑 | Narcissus
供稿 | Deeecade
审核 | 农心生信工作室