Jython采用模块包装,便于安装



我刚刚构建了一个Jython项目,该项目使用了一些Python模块导入和一些Java jar。在我自己的电脑上,由于我只是想完成这件事,我通过硬编码sys.path并分别安装我想要的每个模块和jar,以一种非常巧妙的方式完成了工作。这绝对不是我想保留的发布版本。我读过关于可以将所有内容打包到一个独立的Jython jar中的文章,这对我来说听起来很好。有什么理由不这样做吗?如果没有,有没有一个指南可以指导我做这件事的最佳方法?我正在通过PIG运行整个过程,所以拥有一个可调用的Jython罐子将是理想的选择。

我知道SO上已经存在一些类似的问题,但这些问题的答案似乎很老,而且给出的文档(例如MavenJython)也很差。我已经看过MavenJython和Jip,但我真的无法在两者之间做出决定,而且我也没有找到足够的信息。这个问题的理想答案是我应该使用什么,为什么我应该使用它,并简要演示如何使用它。任何一个链接都会很棒。

谢谢!

请详细说明如何改进MavenJython文档。自2011年以来,情况没有改变(你可能已经看到了这个答案),那是不久前的事了。有网站,但作为一名程序员,你可能只想阅读jython编译maven插件测试项目的源代码,该项目只有200行代码。使用这个包作为您自己项目的起点是个好主意。

分销理念

Java软件分发(和Windows软件分发)的工作方式通常是打包所需的一切。所以,是的,一个独立的Jython jar是合适的。缺点是每个软件都可能使用不同的Jython版本,好处是这可能是你想要的(更新可能会破坏东西)。这也是MavenJython方法,将所有内容打包到正确的版本中。

Python和Linux软件发行版只安装软件包,在安装时检查兼容性。这就是jip方法,它假设您已经拥有Jython,并且无论谁安装软件,都将通过安装正确的版本来解决可兼容性问题。

差异

关于jip,我不能说太多,但我没有使用过它。从我在演示中看到的情况来看,jip旨在为Python包提供对Maven Java库的访问。它似乎还能够从Jython代码中生成maven包。因此,您可能可以使用MavenJython或jip来实现您的目标。试试看。

使用MavenJython构建的可交付成果分发Jython,而jip则不分发。

  • 如果你想指导那些已经使用jython并且不熟悉Maven的程序员,他们想使用你的库来获取你的jython库包,那么jip可能是最好的选择
  • 如果你想为程序员编写Jython库并分发它们,你可以使用MavenJython或jip
  • 如果您有一个最终可交付给客户的软件包,碰巧它也使用Jython代码和Jython包,也许还为用户提供程序内脚本,请使用MavenJython。它允许您创建一个独立的可执行文件

清管器使用案例

对于通过pig运行jython,安装jython并将jython源代码放在您的路径中就足够了——请参阅pig手册的嵌入式python部分。jip可能适合在本地安装jython包,但如果您只想运行代码,则不需要jip。但是,如果您想分发使用pig的软件,并在客户端计算机上安装pig、jython和您的代码,MavenJython可以为您做到这一点。

最新更新