
大家好,有一个问题请教大家。
目前在做一个项目中用到了很多自然语言处理相关的算法,用 Python 开发。开发好了之后要交给业务部门和目前已有的基于 Java 的系统集成。老板说不想把 Python 源代码交给业务部门,想做成一个 Java 可执行的 binary file。
我只有 Python 开发经验,没有 Java 开发经验。想请教大家,想要达到这个目的,需要选用什么样的技术呢?
顺便说一下,因为在公司的严密网络环境中,无法使用 Docker 等容器。
谢谢大家!
1 janxin 2017 年 7 月 13 日 不能,要是没有第三方库,要么自己 cython 成 C ? |
2 est 2017 年 7 月 13 日 Jython 可行。。。LZ 只需要移植所有 NLTK 什么的库到 Jython 就搞定了。是不是很简单。 |
3 est 2017 年 7 月 13 日 另外,公司内部集成,可以上闹得最响的 microservice 架构。 |
4 aurora1625 OP @est 哦,除了 NLTK 还用到了 scikit.learn,也就是说还要移植 scikit.learn 到 Jython ? |
5 Finest 2017 年 7 月 13 日 RPC。。。。 |
6 v2dead 2017 年 7 月 13 日 via Android 可以用 jni 调用,你用 C 封装个 py 的启动器,包装成 so 库应该不难。之前有一次我打包我的小工具给同事用,用了几个打包的都不好用,直到一气之下找了篇文章,自己用 vs 写了个启动器,再把 pyc 还是 pyo 放进去就可以了。 话说你们不能用其他的 rpc 方式么,什么 restful,thrift,还有 java 最喜欢的什么 webservice |
7 ldbC5uTBj11yaeh5 2017 年 7 月 13 日 楼主太实诚了,二楼在婊你,不要相信他。。。 你可以用 execnet 暴露你的接口,然后用 czfreeze 把你的程序打包。最后用 execnet in jython 来调用即可。 |
8 v2dead 2017 年 7 月 13 日 via Android 对了,刚翻到个 py4j 的项目,自己找吧。 |
9 aurora1625 OP @jigloo 谢谢!我刚刚毕业,没有开发经验,你说的我都不懂,我都去查,谢谢! |
10 ldbC5uTBj11yaeh5 2017 年 7 月 13 日 刚毕业的话,那别搞这些酷炫的东东了。老老实实用 rpc 吧。推荐用 python xmlrpclib 标准库,这样 java 作为调用方也调的比较爽。 |
11 aurora1625 OP @jigloo 好的,非常感谢,我继续研究! |
12 Cooky 2017 年 7 月 14 日 via Android Python 有解释器的 api 吧 |
13 Cloudee 2017 年 7 月 14 日 via iPhone 我也觉得封装成 webservice 给业务调用比较好,这样他们连 binary 都没有(这怎么防自己人跟防贼一样...) |
14 stormpeach 2017 年 7 月 14 日 用 cpp 重写一遍啊,性能也提升了。。。 |
15 yylucifer 2017 年 7 月 18 日 直接打包成 jar 包,做下代码混淆,内部用可以了。你们老板只是说不给源代码,是没给呀。。 |