我在编码方面比较新,我试图在我的Sikuli代码中使用PushBullet API(来自Azelphur)。我使用pip来安装PushBullet及其依赖项。以下代码在Atom编辑器中完美运行,但在Sikuli中遇到错误:
from pushbullet.pushbullet import pushbullet
apiKey = "EXAMPLE"
send = PushBullet(apiKey)
devices = send.getDevices()
send.pushNote(devices[0]["iden"], "Hello World", "Test")
在Sikuli IDE中,我添加了这些路径(之前无法找到模块):
import sys
sys.path.append("/Library/Python/2.7/site-packages")
sys.path.append("/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python")
然而它会返回:
[error] script [ pushsample ] stopped with error in line 5
[error] AttributeError ( 'module' object has no attribute 'SOL_TCP' )
[error] --- Traceback --- error source first
line: module ( function ) statement
30: _socket ( <module> ) DEFAULT_SOCKET_OPTION = [(socket.SOL_TCP, socket.TCP_NODELAY, 1)]
31: _http ( <module> ) from ._socket import*
29: _handshake ( <module> ) from ._http import *
33: _core ( <module> ) from ._handshake import *
35: _app ( <module> ) from ._core import WebSocket, getdefaulttimeout
23: __init__ ( <module> ) from ._app import WebSocketApp
18: pushbullet ( <module> ) from websocket import create_connection
[error] --- Traceback --- end --------------
为什么它会在Atom中运行而不是Sikuli IDE(现在我已经添加了路径)?谢谢你的任何想法!
答案 0 :(得分:0)
Sikuli基于Jython,而不是标准Python。也许Atom使用Python解释器来运行代码,但是Sikuli IDE使用Jython解释器,这可能是它没有看到模块而无法运行它的原因。
您可能需要查看jpushbullet(https://github.com/silk8192/jpushbullet)以及如何在Jython / Sikuli中混合使用Java和Python代码。