[英]jar or exe file from Sikuli python script
我刚刚开始用Python用Sikuli做一些脚本。
我想知道是否有可能(如果是,如何)从我的python脚本(文件.py和images)创建jar或exe文件。
我想从没有安装sikuli的其他计算机上轻松运行我的程序(例如java -jar my_script.jar
或my_script.exe
)或将该实用程序提供给某些同事,但我不希望他们看到源代码码。
有多种方法可以将.py转换为.exe和exetra
虽然我相信可以更改扩展名,但如果您使用python扩展名,则过程会更加轻松,顺畅,例如Py2exe可以通过简单的Google搜索找到下载的文件(我也提供了指向它们的链接网站)。 该程序将允许您将程序转换为.exe,并且无需安装python就可以运行。
这是一个信誉良好的选择列表: http : //www.freehackers.org/Packaging_a_python_program
我个人会推荐Py2exe( http://www.py2exe.org/ ),有关Py2exe的教程可以在此处找到( http://www.py2exe.org/index.cgi/Tutorial )
使用jar文件,就像Sikuli用Java编写并使用Jython一样 。 您需要做三件事才能使它起作用。
首先获取sikuli-java.jar
文件( 此处是分步说明 ),您可以通过下载sikuli-setup.jar
来获取,然后使用选项4(仅Java)和6(与所有OS兼容)运行它。 这应该下载sikuli-java.jar
文件。
您可以使用Jython编译Python( 此处有完整说明 ):
$JYTHON_HOME/jython $JYTHON_HOME/Lib/compileall.py python_src/
其中python_src
是包含所有.py
文件的目录。
然后,您可以使用包装程序类从Java调用这些编译文件(看起来像myFile$py.class
)(有关示例,请参见完整说明)。 该包装器调用了一个Python方法,因此您可以将该方法作为开始其他程序的主要Python方法。
编译包装器类:
javac -cp $JYTHON_HOME/jython.jar TestJ.java
然后jar
所有.class
文件 :
jar cvfe myapp.jar <packageName>.TestJ *.class
其中, <packageName>
是包装器TestJ.java
类的软件包。
您还需要将Jython添加到此jar中。 只需按照下面“ jar中的Python .py文件”部分的前几个步骤进行操作,或下载独立的Jython jar,并在下面的“合并jars”部分sikuli-java.jar
其包含为sikuli-java.jar
。
现在,您必须为脚本本身创建jar。 完整说明在这里 ,但是如果您想摘要:
以安装Jython时获得的
jython.jar
文件并将Jython Lib目录压缩到其中,然后压缩.py文件,然后添加具有启动逻辑的__run__.py
文件(Jython对该文件进行了特殊处理)并且将是您使用java -jar
调用jar时执行的文件。
如果愿意,还可以从python.org获得更通用的指南 。
注意:
上面的完整说明假定您具有zip
程序。 如果不这样做,则可以使用jar uvf jythonlib.jar Lib
代替zip -r jythonlib.jar Lib
(在使用zip
任何地方都可以执行类似操作)。 看到这里更多
您可以使用jar
来简单地将sikuli-java.jar
添加到包含脚本的jar
如上面的注释所述 。 如果愿意,还可以组合两个jar文件 (也可以使用jar
)。
无论哪种方式,这都应该为您提供一个jar文件,该文件可以在具有兼容JVM的任何系统上运行Sikuli程序。 使用运行它
java -jar myapp.jar
恭喜,您完成了!
如果您需要处理命令行参数,或者通常需要更多详细信息,请参见堆栈溢出指南或完整的Python指南 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.