我在之前写了一篇文章讲述 如何跨越跳板机 连接 被跳板机隔离的hive服务的文章,当时是用的mac上的一个收费软件 ssh-tunnel
一百二十八块大洋,其实已经很贵了,怎么办,一般人其实都不舍得买,一般又懒又笨的人 也没工夫找破解版的。所以综上所述造就了我去寻找替代品。发现没有免费的,寻思要不就自己写一个吧。所幸的是,差不多十天的积累和一些优质代码可以参考 ,我也总算写出来了。当然可以说造了一个轮子而已。我迫不及待的上传到github上,希望大家可以下载,解决各个公司的痛点。后来 灵光一现,总认为 一个项目 直接给源代码 还是一盘散沙,如果可以打包一下,放在 一个package manager repo中就再好不过了。恰好 python的pypi 仓库真的可以这样,比maven好像好很多。
按照网上的教程打包,发现一个问题,本地运行可以,传上去就有些问题,断断续续 不断递增版本 提交pypi repo,一直提交到 0.2.8 才感觉有点稳定的眉目。 自己才有信心去推广。
后来 介绍给同事用,又发现问题,虽然安装了 结果 根本无法引用模块,从权限 到python 版本 再到安装install的方式 和排查各个代码文件的 问题都尝试了一个遍,还是没有找到原因,非常沮丧。晚上想着家里还有一台mac ,回家接着再尝试 找原因,回家后折腾到十二点,不断试错仍旧没有解决。感觉自己晚上睡得特别不踏实,但是内心有隐隐约约告诉自己,这不是什么大问题,应该只是一个小坑而已,肯定可以跨过的。。。一想到 自己好像还有一本书讲到过python 打包上传pypi的内容,深夜在四五个书架里的四五百本书中 总算找到它,爬上床 就这台灯微弱的光 阅读了两遍,心想 着明天就要彻底 解决这个棘手的障碍。
确实,最有成就感的就是你找到了 错误的原因,吸取它 记录它 防备着下次的慌乱。我最终找到了原因,通过分析打包后的 tar.gz 文件 和比对,发现 真正的源代码根本没有打包进去,主要原因 是根目录缺少 package文件目录,并缺少 init.py文件,还有就是再 其中声明自己 写的这些python类,python类之间的引用关系【 引用模块时出现TypeError:'module' object is not callable】也梳理清了。整完这些,再次打包,非常顺遂,这次打包非常成功,我之后彻底卸载本地的 旧版本ssh-jump-hive ,重新安装最新版本的。 发现运行 很好,然后我接着把ftps 的代码也打包到其中,算是以后自己常用的toolkit。
在同事的反馈和需求下 又增添一些功能,为了 让这个包,更好用,下一步的目标是 接着开发新需求,使之成为一个可以在命令行单独运行的工具 ,直接敲命令 参数就可以执行。
为了使之更可爱,发挥了一把自己的p图的余热,logo是一个 橘红色的小狐狸,一只跳跃的小狐狸在寻找着蜂蜜,代表着这个工具的聪明伶俐 短小精悍,字体也选用了 极具动作感的 ,活灵活现
嗨,ssh-jump-hive现在就像是我的一个孩子,一个精心培育的孩子。。。希望他慢慢长大
参考 :
http://python.jobbole.com/86443/
https://github.com/PytLab/VASPy
https://blog.csdn.net/winycg/article/details/78512300