簡體   English   中英

Sikuli python腳本中的jar或exe文件

[英]jar or exe file from Sikuli python script

我剛剛開始用Python用Sikuli做一些腳本。

我想知道是否有可能(如果是,如何)從我的python腳本(文件.py和images)創建jar或exe文件。

我想從沒有安裝sikuli的其他計算機上輕松運行我的程序(例如java -jar my_script.jarmy_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罐子:

首先獲取sikuli-java.jar文件( 此處是分步說明 ),您可以通過下載sikuli-setup.jar來獲取,然后使用選項4(僅Java)和6(與所有OS兼容)運行它。 這應該下載sikuli-java.jar文件。

以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中的Python .py文件:

現在,您必須為腳本本身創建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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM