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