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

Интеграция и настройка Jython в Intellij IDEA

ide
jython
python
java
Теги: #<Tag:0x00007f7b65f1f378> #<Tag:0x00007f7b65f1f1e8> #<Tag:0x00007f7b65f1efb8> #<Tag:0x00007f7b65f1ee28>

(Alexander) #1

Всем привет.
Помогите пожалуйста интегрировать Jython с Intellij IDEA.
Делал все как описно вот тут - https://wiki.python.org/jython/JythonDeveloperGuide/IntellijNotes

Хотел проверить открытие апплета (вот код):


#! /usr/bin/env jython

from java.applet import Applet

class HelloWorld(Applet):
    def paint(self, g):
        g.drawString("Hello from Jython!", 20, 30)

Но в итоге вот такая ошибка:
ImportError: No module named java.applet

Может кто-то подкажет как испраить.
Если запускачть через консоль “jython Jython.py” то все работает.

Или вот другой пример кода:


#! /usr/bin/env jython
# -*- coding: utf-8 -*-

from javax.swing import JButton
from javax.swing import JFrame
from javax.swing import JPanel

class Example(JFrame):
    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        panel = JPanel()
        self.getContentPane().add(panel)

        panel.setLayout(None)
        panel.setToolTipText("A Panel container")

        button = JButton("Button")
        button.setBounds(100, 60, 100, 30)
        button.setToolTipText("A button component")

        panel.add(button)

        self.setTitle("Tooltips")
        self.setSize(300, 200)
        self.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
        self.setLocationRelativeTo(None)
        self.setVisible(True)


if __name__ == '__main__':
    Example()


В итоге вот такая ошибка:


/usr/bin/python2.7 /home/alexml/IdeaProjects/Jython/src/main/java/Jython.py
Traceback (most recent call last):
  File "/home/alexml/IdeaProjects/Jython/src/main/java/Jython.py", line 4, in <module>
    from javax.swing import JButton
ImportError: No module named javax.swing

Process finished with exit code 1


А если через консоль в терминале “jython Jython.py” то все ok.


(Mykhailo Poliarush) #2

With the Python plugin installed, navigate to File > Project Structure. Under the Project menu for Project SDK, select “New” and select “Python SDK”, then select “Local”. Provided you have a Python SDK installed, the flow should be natural from there - navigate to the location your Python installation lives.


(Mykhailo Poliarush) #3

По ошибке четко видно, что вы запускаете код из под python, а нужно из под jython.
В проекте надо выбрать установленный интерпретатор из списка


(Alexander) #4

Михил спасибо.
Дело в том что я устанавливал Jython не из репозитория Ubuntu (Сейчас там версия - 2.5.3-6 0), а скачал с оф. сайта Jython(http://www.jython.org/) более новую версию (2.7) и поэтому у меня не было SDK Jython.
Добавил SDK вручную из той папки куда распаковал Jython.
Вот как на скриншоте что внизу.
Спасибо за помощь.


(Mykhailo Poliarush) #5

Ну так что все заработало?


(Alexander) #6

Да Михаил, спасибо.
Я еще добавил “External Libraries” из java.


А то сам код собирается и запускаеться но синтаксис подсвечивает красным и нет подсказок по содержаию методов, как на скриншоте внизу.


(Mykhailo Poliarush) #7

есть какая-то проблема с зависимостями, ну и скриншот внизу это уже pycharm


(Alexander) #8

Нет скриншот не из pycharm, просто у него с Intellij IDEA UI очень похожи.
Ну и после добавление External Libraries поблема с зависимостями исчезла :grinning: