小埋酱最近几乎都在折腾AI相关的事情,而AI相关开发的首选肯定是Python。无论是第三方库的丰富程度,还是开发的速度都是其他语言难以比拟的。
随着算法库的不断完善,必定会带来一个问题,就是以后私有化部署的时候,如何保护源代码的安全性(顺带提升一下执行性能,从网上的测试报告来看,即使不做任何修改,Cython化至少都能获得30%的提升哟)。这是个非常重要的,毕竟做了很多次实验才得到的较好的算法,就这样被从源码连根拔起总会让人觉得非常不划算。假如使用的开发语言是Go,简单执行以下go build就已经能取得听不错的效果了。但是用Go写一遍小波变换。。呃。。。放过我吧。。。
使用Cython来保护Python源代码,顺带加个速是比较不错的想法,编译成pyd/so的文件反编译出来简直是非常非常的难看=。=,好的,顺着这个想法,小埋酱就开始去github找有没现成的(能偷懒就偷懒是小埋酱的一贯原则)。然而,出乎意料的是,连续实验了好几个,居然都没有成功好用的。配置往往都挺复杂,其中有一个全自动的(忘记叫什么名字了)直接把Mac上的Python给搞坏了,我还是在virtualenv下执行的呀,这也太暴力了些吧
好吧好吧。这回就不得不自己写个了,于是就有了这个项目
himoutoumaru/setup-cythongithub.comsetup-cython的目标是让使用者能够以最低的成本(拷贝、粘贴)把自己的python项目Cython化。
以setup-cython项目的示例来举个例子:
红框框框住的是我们的目标源码包,现在要Cython化来对他进行保护,那需要做的事情就是,执行一下setup.py
python setup.py build
执行完毕后,会多出一个build的目录,可以看到,整个项目已经自动的把Cython化的事情给干完了 (゜-゜)つロ
然后我们就可以愉快的对它进行后续的打包发布处理啦,欢迎Fork、Star哟。