来自 Sikuli python 脚本的 jar 或 exe 文件
jar or exe file from Sikuli python script
我刚开始在 Python 中使用 Sikuli 编写一些脚本。
我想知道是否可以(如果可以,如何)从我的 python 脚本(文件 .py 和图像)创建 jar 或 exe 文件。
我想从其他没有安装 sikuli 的机器(例如,java -jar my_script.jar
或 my_script.exe
)轻松 运行 我的程序,或者将实用程序提供给一些同事,但是我不希望他们看到源代码。
有很多方法可以将 .py 转换为 .exe 和 excetra
虽然我相信可以更改扩展名,但如果您使用 python 的扩展名,这个过程会更容易和更顺利,就像 Py2exe 一样,可以通过简单的 google 搜索(我还在下面的网站中添加了 link)。该程序将允许您将程序转换为 .exe,并且 运行 无需 python 安装。
以下是信誉良好的优质选项列表:http://www.freehackers.org/Packaging_a_python_program
个人比较推荐Py2exe(http://www.py2exe.org/) and the tutorial to Py2exe can be found here (http://www.py2exe.org/index.cgi/Tutorial)
使用 jar 文件,如 Sikuli is written in Java and uses Jython。您需要做三件事才能使其正常工作。
获取 Sikuli 罐子:
首先获取 sikuli-java.jar
文件(step-by-step instructions here), which you can get by downloading sikuli-setup.jar
,然后 运行 使用选项 4(仅 Java)和 6(所有 OS 兼容) . 这应该下载 sikuli-java.jar
文件。
将您的脚本本身作为 jar 分发:
混淆版本:
您可以使用 Jython (full instructions here) 编译您的 Python:
$JYTHON_HOME/jython $JYTHON_HOME/Lib/compileall.py python_src/
其中 python_src
是包含所有 .py
文件的目录。
然后您可以使用包装器 class 从 Java 调用这些编译文件(看起来像 myFile$py.class
)(有关示例,请参阅完整说明)。
此包装器调用单个 Python 方法,因此您可以将该方法作为启动程序其余部分的主要 Python 方法。
编译包装器class:
javac -cp $JYTHON_HOME/jython.jar TestJ.java
然后jar
all your .class
files:
jar cvfe myapp.jar <packageName>.TestJ *.class
其中 <packageName>
是包装器的包 TestJ.java
class.
您还需要将 Jython 添加到此 jar。只需按照下面“Python jar 中的 .py 文件”部分的前几个步骤,或 download the standalone Jython jar 并以与下面“合并 jars”部分中的 sikuli-java.jar
相同的方式包含它.
Python jar 中的 .py 文件:
现在您必须为脚本本身创建 jar。 full instructions are here,但如果你想要一个摘要:
Take the jython.jar
file that you get when you install Jython and zip the Jython Lib directory into it, then zip your .py files in, and then add a __run__.py
file with your startup logic (this file is treated specially by Jython and will be the file executed when you call the jar with java -jar
).
如果您愿意,还有来自 python.org 的 more general guide。
注:
上面的完整说明假设您有 zip
程序。如果不这样做,您可以使用 jar uvf jythonlib.jar Lib
而不是 zip -r jythonlib.jar Lib
(在使用 zip
的任何地方做类似的事情)。 See here for more
合并罐子
如果您愿意,您可以简单地将 sikuli-java.jar
添加到包含您的脚本的 jar 中,使用 jar
作为 mentioned in the note above. You can also combine the two jar files(也可以使用 jar
)。
无论哪种方式,这都应该为您提供一个 jar 文件,该文件可以 运行 您的 Sikuli 程序跨任何具有兼容 JVM 的系统。 运行 它使用
java -jar myapp.jar
恭喜,大功告成!
如果您需要处理命令行参数,或者通常需要更多详细信息,请参阅stack overflow guide or the full Python guide。
我刚开始在 Python 中使用 Sikuli 编写一些脚本。
我想知道是否可以(如果可以,如何)从我的 python 脚本(文件 .py 和图像)创建 jar 或 exe 文件。
我想从其他没有安装 sikuli 的机器(例如,java -jar my_script.jar
或 my_script.exe
)轻松 运行 我的程序,或者将实用程序提供给一些同事,但是我不希望他们看到源代码。
有很多方法可以将 .py 转换为 .exe 和 excetra
虽然我相信可以更改扩展名,但如果您使用 python 的扩展名,这个过程会更容易和更顺利,就像 Py2exe 一样,可以通过简单的 google 搜索(我还在下面的网站中添加了 link)。该程序将允许您将程序转换为 .exe,并且 运行 无需 python 安装。
以下是信誉良好的优质选项列表:http://www.freehackers.org/Packaging_a_python_program
个人比较推荐Py2exe(http://www.py2exe.org/) and the tutorial to Py2exe can be found here (http://www.py2exe.org/index.cgi/Tutorial)
使用 jar 文件,如 Sikuli is written in Java and uses Jython。您需要做三件事才能使其正常工作。
获取 Sikuli 罐子:
首先获取 sikuli-java.jar
文件(step-by-step instructions here), which you can get by downloading sikuli-setup.jar
,然后 运行 使用选项 4(仅 Java)和 6(所有 OS 兼容) . 这应该下载 sikuli-java.jar
文件。
将您的脚本本身作为 jar 分发:
混淆版本:
您可以使用 Jython (full instructions here) 编译您的 Python:
$JYTHON_HOME/jython $JYTHON_HOME/Lib/compileall.py python_src/
其中 python_src
是包含所有 .py
文件的目录。
然后您可以使用包装器 class 从 Java 调用这些编译文件(看起来像 myFile$py.class
)(有关示例,请参阅完整说明)。
此包装器调用单个 Python 方法,因此您可以将该方法作为启动程序其余部分的主要 Python 方法。
编译包装器class:
javac -cp $JYTHON_HOME/jython.jar TestJ.java
然后jar
all your .class
files:
jar cvfe myapp.jar <packageName>.TestJ *.class
其中 <packageName>
是包装器的包 TestJ.java
class.
您还需要将 Jython 添加到此 jar。只需按照下面“Python jar 中的 .py 文件”部分的前几个步骤,或 download the standalone Jython jar 并以与下面“合并 jars”部分中的 sikuli-java.jar
相同的方式包含它.
Python jar 中的 .py 文件:
现在您必须为脚本本身创建 jar。 full instructions are here,但如果你想要一个摘要:
Take the
jython.jar
file that you get when you install Jython and zip the Jython Lib directory into it, then zip your .py files in, and then add a__run__.py
file with your startup logic (this file is treated specially by Jython and will be the file executed when you call the jar withjava -jar
).
如果您愿意,还有来自 python.org 的 more general guide。
注:
上面的完整说明假设您有 zip
程序。如果不这样做,您可以使用 jar uvf jythonlib.jar Lib
而不是 zip -r jythonlib.jar Lib
(在使用 zip
的任何地方做类似的事情)。 See here for more
合并罐子
如果您愿意,您可以简单地将 sikuli-java.jar
添加到包含您的脚本的 jar 中,使用 jar
作为 mentioned in the note above. You can also combine the two jar files(也可以使用 jar
)。
无论哪种方式,这都应该为您提供一个 jar 文件,该文件可以 运行 您的 Sikuli 程序跨任何具有兼容 JVM 的系统。 运行 它使用
java -jar myapp.jar
恭喜,大功告成!
如果您需要处理命令行参数,或者通常需要更多详细信息,请参阅stack overflow guide or the full Python guide。