Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Работа с Sikuli на Python в PyCharm

sikuli
jython
pycharm
python
java
Теги: #<Tag:0x00007f7b64eff858> #<Tag:0x00007f7b64eff6c8> #<Tag:0x00007f7b64eff498> #<Tag:0x00007f7b64eff330> #<Tag:0x00007f7b64eff1a0>

(Viktor Kazankov) #1

Не могу разобраться как подключить библиотеку Sikuli к PyCharm.

  1. Устанавливаю Sikuli из https://launchpad.net/sikuli/sikulix/1.0.1
  2. Установил Jython в PyCharm и сделала его интерпритатором.
  3. Добавляю в classpath Jython-a sikuli-java.jar и папку libs
  4. Пытаюсь подключить библиотек: from sikuli import*

Но библиотека sikuli не видна в коде.
Может я что-то пропустил, подскажите плиз


(Mykhailo Poliarush) #2

К сожалению не видно как у вас настроен проект. Вроде бы все делаете верно, но проблема видимо в том, что почему jython не видит ваш jar файл, поэтому и не грузиться.

Попробуйте сначала попробовать просто в консоли запустить простое приложение с помощью CLASSPATH

Calculator.java

/**
* Java calculator class that contains two simple methods
*/
public class Calculator {

    public Calculator(){

    }

    public double calculateTip(double cost, double tipPercentage){
        return cost * tipPercentage;
    }

    public double calculateTax(double cost, double taxPercentage){
        return cost * taxPercentage;
    }

}

JythonCalc.py

import Calculator
from java.lang import Math

class JythonCalc(Calculator):
    def __init__(self):
        pass

    def calculateTotal(self, cost, tip, tax):
        return cost + self.calculateTip(tip) + self.calculateTax(tax)

if __name__ == "__main__":
    calc = JythonCalc()
    cost = 23.75
    tip = .15
    tax = .07
    print "Starting Cost: ", cost
    print "Tip Percentage: ", tip
    print "Tax Percentage: ", tax
    print Math.round(calc.calculateTotal(cost, tip, tax))

А потом в консоли сделать запуск

javac Calculator.java
set CLASSPATH=d:\temp\jython-example
jython JythonCalc.py

Если работает, то проблема именно в конфигурации, а если нет, то надо будет решить проблему.


(Mykhailo Poliarush) #3

Можно также добавить джарку из кода

http://www.jython.org/jythonbook/en/1.0/ModulesPackages.html#module-search-path-and-loading

>>> import sys
>>> sys.path.append("/Users/frank/lib/mysql-connector-java-5.1.6.jar")
>>> import com.mysql
*sys-package-mgr*: processing new jar,
'/Users/frank/lib/mysql-connector-java-5.1.6.jar'
>>> dir(com.mysql)
['__name__', 'jdbc']

(Клочанов Александр) #4

Добрый день, а возможно ли получить более детальную инструкцию по установке Sikuli на Python в PyCharm?


(Mykhailo Poliarush) #5

Предлагаю вам попробовать начать самому, а если будут проблемы, то поможем.

  1. устанавливаем PyCharm
  2. устанавливаем Jython
  3. настраиваем Jython как интерптератор для запуска в PyCharm
  4. создаете проект
  5. скачиваете sikuli jar файл
  6. настраиваете конфигурацию в PyCharm, где указываете sikuli jar в classpath
  7. запускаете тест

(Клочанов Александр) #6

подскажите , пожалуйста, а как это реализовать ?


(Владислав Кузь) #7

Прошу прощения за банальщину но все же как выполнить 6 пункт?


(Petar Bonchev) #8

Top Menu -> Run -> Edit Configurations -> Environment Variables

Добавляем CLASSPATH со /path/to/sikuliapi.jar


(Oleksii Burdin) #9

Кроме всего выше мне пришлось добавить python классы из sikuliapi.jar как модуль sikuli в jython, а именно (для Windows):

  1. В папкe c установленным sikuli запустить 1 раз sikuliapi.jar
    Это создает файлы необходимых классов в C:\Users\myuser\AppData\Roaming\Sikulix\
  2. Добавить папку Lib\sikuli в python path. Самым простым способом мне показалось скопировать папку sikuli из …AppData\Roaming\Sikulix\Lib\ в папку уже присутствующую в python path, например C:\jython2.7.0\Lib\site-packages
    Т.е. в результате как бы вручную устанавливаем в jython модуль sikuli.
    Только после этого from sikuli import * cтало проходить.