Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用模块包装Jython,便于安装_Python_Maven_Jython_Packaging_Apache Pig - Fatal编程技术网

Python 使用模块包装Jython,便于安装

Python 使用模块包装Jython,便于安装,python,maven,jython,packaging,apache-pig,Python,Maven,Jython,Packaging,Apache Pig,我刚刚构建了一个Jython项目,它使用了一些Python模块导入和一些Java JAR。在我自己的电脑上,因为我只是想完成这件事,所以我通过对sys.path进行硬编码,并分别安装我想要的每个模块和jar,让事情以一种非常黑客的方式工作。这绝对不是我想要保留的发布版本。我读过关于能够将所有东西打包到一个独立的Jython jar中的文章,这对我来说非常好。有什么理由我不应该这样做吗?如果没有,有没有人能给我指点最好的方法?我正在通过PIG运行整个过程,所以拥有一个可调用的Jython jar将

我刚刚构建了一个Jython项目,它使用了一些Python模块导入和一些Java JAR。在我自己的电脑上,因为我只是想完成这件事,所以我通过对sys.path进行硬编码,并分别安装我想要的每个模块和jar,让事情以一种非常黑客的方式工作。这绝对不是我想要保留的发布版本。我读过关于能够将所有东西打包到一个独立的Jython jar中的文章,这对我来说非常好。有什么理由我不应该这样做吗?如果没有,有没有人能给我指点最好的方法?我正在通过PIG运行整个过程,所以拥有一个可调用的Jython jar将是理想的

我知道在SO上已经存在一些类似的问题,但这些问题的答案似乎非常陈旧,并且给出的文档(例如MavenJython)非常糟糕。我已经看过了,但是我不能在两者之间做出决定,我也没有找到足够的信息。这个问题的理想答案是我应该使用什么,为什么我应该使用它,并简要演示如何使用它。链接到其中任何一个也会很棒


谢谢

请详细说明如何改进MavenJython文档。自2011年(你可能是吧)以来,一切都没有改变,那是不久前的事了。网站是有的,但作为一名程序员,你可能只想阅读项目的源代码,它只有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源代码放到您的路径中即可——请参阅。jip可以适用于在本地安装jython包,但如果您只想运行代码,则不需要jip。但是,如果您想要分发使用pig的软件,并在客户端计算机上安装pig、jython和您的代码,MavenJython可以为您这样做