1

我有一些jython与 Sikulix 一起运行的 Python(实际上)脚本。

我以前使用的是1.1.1版并且使用的是命令行(在进行设置之后):

java -Dsikuli.Debug=-2 -cp sikulix.jar org.python.util.jython main.py

1.1.4版本中,不再需要设置,并且jython已从sikulix.jarsikulixapi.jar中删除。Jython 位于另一个 jar 文件 ( jython-standalone-2.7.1.jar ) 中。

我尝试使用以下命令行运行

java -Dsikuli.Debug=-2 -cp "sikulix.jar;jython-standalone-2.7.1.jar" org.python.util.jython main.py

但我收到以下错误

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    from sikuli.Sikuli import *
ImportError: No module named sikuli

文档没有完全更新如何做到这一点。他们提到安装jython,jip和其他东西,但没有任何工作。

关于如何做的任何想法?

谢谢

==PS==

完成以下操作后,它几乎起作用了:

  • 安装jython
  • 设置CLASSPATHsikulixapi.jar的绝对路径
  • 跑步jython main.py

我收到以下错误:

[error] RunTimeINIT:  *** terminating: Java arch not 64 Bit or not detected (java 8-32 version 1.8 vm 25.121-b13 class 52.0 arch null)

我已经用 32 位 Java 安装了 Jython,似乎需要 64 位 Java。

我可能会再次尝试使用 64 位 Java JDK。

4

1 回答 1

2

在脚本的开头添加以下行

import org.sikuli.script.SikulixForJython

这将有助于sikuli在 Java 类中查找模块。

然后,您可以使用前面提到的命令行运行:

java -cp "sikulixapi.jar;jython-standalone-2.7.1.jar" org.python.util.jython main.py

Python 脚本 (main.py) 示例

import org.sikuli.script.SikulixForJython
from sikuli.Sikuli import *

notepad = App('notepad.exe')
notepad.open()
sleep(1)
type("It is working!")
notepad.close()
于 2018-09-03T10:39:15.107 回答