Pip install eel как установить
Перейти к содержимому

Pip install eel как установить

  • автор:

Python & EEL. Делаем просто на Python’е и красиво на JS

Тема красивых интерфейсов была и будет актуальна всегда. Кто-то использует для создания графических приложений C#, кто-то использует Java, кто-то уходит в дебри C++, ну а кто-то извращается с Python, используя tkinter или PyQT. Существуют различные технологии, позволяющие совмещать красоту графических дизайнов, создаваемых на HTML, CSS и JS с гибкостью в реализации логики приложения, которую может дать другой язык. Так вот, для тех, кто пишет на самом лучшем языке программирования Python, есть возможность писать красивые интерфейсы на HTML, CSS и JS и прикручивать к ним логику на Python.

В этой статья я хочу показать на небольшом примере, как же все таки создать простое и красивое десктопное приложение на HTML, CSS, JS и Python. В качестве библиотеки для связи всех компонентов будем использовать EEL.

Установка

Оговорюсь, что я работаю на windows 10 x64.

Для начала установим саму библиотеку выполнив простую команду:
pip install eel
После установки одной лишь библиотеки можно начинать наш путь.

Наше приложение будет выглядеть таким образом:

Логика приложения очень простая: при нажатии кнопки “рассчитать” считываются значения в поле для ввода рублей, полученные данные отправляются в Python, где происходит расчет курса валют. Python возвращает нам данные и мы выводим из через JS

Раскидываем по папкам

Разобьем теперь наш проект на модули. В папку “front” будем класть всё, что связано с графической частью нашего приложения. В папку “back” будем помещать все наши исходники на python. Еще создадим папку middle, в которую будем помещать методы, вызываемые из JS (об этом чуть позже). В Главной директории создадим файл main.py, он будет запускать наше приложение.

Логика на Python

В качестве теста реализуем простое приложение конвертер валют (да-да, банально, никому не надо, на гитхабе миллион проектов). Для этого на python установим библиотеку CurrencyConverter:
pip install currencyconverter

Теперь приступим к написанию логики на python. Реализуем метод, который на вход будет принимать сумму, валюту с которой нам надо перевести и валюту, на которую нам надо перевести. Создадим “convert.py” в директории “back” и запишем в него следующий код:

from currency_converter import CurrencyConverter converter = CurrencyConverter() def convert_value(value: float, from_cur: str, to_cur: str): return converter.convert(value, from_cur, to_cur)

Теперь в директории “middle” создадим файл “mid_convert.py” и пропишем следующий код:

from back.convert import convert_value import eel @eel.expose def convert_value_py(value:float, from_cur:str, to_cur:str)->float: return convert_value(value, from_cur, to_cur)

Что здесь вообще происходит? Файл “mid_convert.py” будет служит связующим звеном между JS и Python. Декоратор @eel.expose дает нашей программе понять, что функция, описанная ниже, может быть вызвана из JS. Таким образом, любая функция, которую мы в будущем захотим вызывать из JS, должна быть обернута декоратором @eel.expose. Очевидно, что не имеет смысла делать лишних модулей, если у вас простой проект, можно было обернуть декоратором функцию “convert_value” в модуле “convert.py”. В больших проектах разбиение программы на такие слои позволит легче расширять и оптимизировать код.

Подключаем Python к JS

Теперь подключим нашу логику на Python к самому JS. Для этого примера я использую простую страничку, сверстанную чисто при помощи HTML, CSS (или вы можете использовать популярные фреймворки, которые нужны вам для работы с графикой). Первым делом необходимо подключить библиотеку eel к самому JS:

Далее реализуем функционал кнопки “рассчитать”. По нажатию кнопки первым делом необходимо считать значение рублей и пойти по каждой валюте, чтобы перевести значение.

async function create_cur_for_rub () < // получаем значение введенных рублей let value_rub = parseFloat(document.getElementById("rub-input").value); // получаем список всех input'ов, в которые надо перевести рубли let list_curs = document.getElementById("list-cur").children; for (let div_cur of list_curs) < // берем название денежной единицы let name_cur = div_cur.getElementsByTagName("span")[0].textContent; // теперь передает значение в Python для обработки let value_cur = await eel.convert_value_py(value_rub, "RUB", name_cur)(); // выводим на экран полученное значение div_cur.getElementsByTagName("input")[0].value = value_cur; >> document.getElementById("btn-sum").onclick = create_cur_for_rub;

Обратите внимание на строку “let value_cur = await eel.convert_value_py(value_rub, «RUB», name_cur)();”. Важно, что вызов функции из питона происходит в асинхронном режиме, поэтому обязательно необходимо сделать асинхронной ту функцию, в которой есть вызов Python кода. При вызове функции из eel необходимо ставить пару (), где в первые круглые скобки будут передаваться наши аргументы.

Проверим, работает ли.

Как мы видим, все работает.

Запуск программы

Для запуска кода используем файл “main.py”. В нем импортируем библиотеку eel и всё, что мы писали в файле “min_convert.py” для того, чтобы при запуске проекта подтянуть все функции, которые мы оборачивали в eel.expose:

import eel from middle.mid_convert import *

Теперь необходимо проинициализировать через eel ту директорию, где лежит front-end нашего приложения. При помощи команды eel.init(args). Далее для запуска самого приложения вызывает метод eel.start(args):

if __name__ == '__main__': eel.init('front') eel.start('index.html', mode="chrome", size=(760, 760))

Метод eel.start принимает на вход несколько параметров (подробнее о них см. официальную документацию по eel). Самым интересным параметром является “mode”. При помощи него вы можете запустить свой проект, как в браузере, так и в виде отдельного приложения. Например, вы можете указать параметр “default”, в таком случае приложению будет запускать в браузере по умолчанию. Если у вас стоит google chrome, то указав параметр “mode=chrome” ваша программа откроется в виде отдельного приложения.

Также можно использовать chromium. Для этого скачиваем его с официального сайта. Разархивируем его в какую-нибудь папку и прописываем следующий код в нашем “main.py”:

eel.browsers.set_path("chrome", "C:/Users/admin/Documents/chrome-win/chrome.exe") eel.start('index.html', mode="chrome", size=(760, 760))

Вывод

Как мы видим, то создавать красивые десктопные приложения с использованием Python в качестве языка для реализации основной логики не так сложно. Вы можете устанавливать какие угодно библиотеки, реализовать нужный код с использованием Python, а писать красивые интерфейсы на HTML,CSS и JS.

P.S. это моя первая статья на Habr, пишите Ваши пожелания, замечания и отзывы, буду рад увидеть любой комментарий.

Как установить eel на питон 3.10?

Пытаюсь установить eel на питон 3.10, пип установлен, задавал вопросы на маил ру, пробовал в консоли и pip install eel и pip3 intall eel, — скачивалось, и ошибка, скачивал еел с какого то сайта, там сет апп который ничего не качает.

6164917d79b9c685444170.png

  • Вопрос задан более двух лет назад
  • 615 просмотров

4 комментария

Простой 4 комментария

Ошибка то какая?)) В ней всё написано
на моменте — «спросил на майл ру» — я чуть чаем не захлебнулся, не шутите так

DeadSchkolnik8 @DeadSchkolnik8 Автор вопроса
низкомолекулярный макрос, я прикрепил сейчас

karabanov

Скриншот-то зачем. Это же текст.
Вы откуда питон брали? Почему в такое место установили? И что-у вас за MS Visual Studio стоит?
Решения вопроса 0
Ответы на вопрос 4

AlexNest

Александр Нестеров @AlexNest Куратор тега Python
Работаю с Python/Django

скачивалось, и ошибка

Всегда читайте текст ошибки.
в 99% случаев в нем указано, что конкретно не так и почему что-то не работает.

Ответ написан более двух лет назад
Нравится 1 7 комментариев
DeadSchkolnik8 @DeadSchkolnik8 Автор вопроса

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

Сергей Горностаев @sergey-gornostaev Куратор тега Python

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

DeadSchkolnik8 @DeadSchkolnik8 Автор вопроса
Сергей Горностаев, С? я скачивал еел для скрещивания питона и веб языков
DeadSchkolnik8 @DeadSchkolnik8 Автор вопроса
и там столько фигни написанно, фиг увидишь про с
Сергей Горностаев @sergey-gornostaev Куратор тега Python

DeadSchkolnik8, eel использует библиотеку cffi, которая написана на C. pip скачивает её исходный код, пытается собраться из него бинарник и не находит чем это сделать.

DeadSchkolnik8 @DeadSchkolnik8 Автор вопроса
Сергей Горностаев, а можно ссылку на эти С файлы?
Сергей Горностаев, Чем — находит. Но какой-то библиотеки не хватает.

phaggi

Алан Гибизов @phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Коротко говоря — никак. Python 3.6, 3.7, 3.8
Ответ написан более двух лет назад
Нравится 1 7 комментариев
У меня установился.

phaggi

Алан Гибизов @phaggi Куратор тега Python

Andy_U, было бы полезно указать параметры окружения, версию ОС, метод установки, всё вот это вот — всем было бы очень полезно.

Алан Гибизов, Да все как обычно, Windows 10 64-bit, Python 3.10 64-bit, MS Build Tools. Завел новый проект в PyCharm, сделал там virtual environment средствами именно PyCharm (лень было ручками virtualenv запускать) с «пробросом» туда уже установленных пакетов — numpy, scipy и matplotlib — тоже, кстати с lfd — scipy не собирается, ждем 1.7.2. «Попросил» PyCharm установить Eel — судя по времени установки, именно что собрался.

Потом посмотрел на ошибку у автора вопроса. — cffi. У меня есть. И чтобы я помнил, кто его попросил? но он тоже с lfd.

Алан Гибизов, Таки наврал. cffi, оказывается, pip собрал из исходников — я в кэше pip’a нашел cffi-1.14.6-cp310-cp310-win_amd64.whl. Но на lfd он тоже есть.

phaggi

Алан Гибизов @phaggi Куратор тега Python

Andy_U, спасибо, очень ценная инфа. Я бы рекомендовал Вам опубликовать свои комменты как ответ на вопрос (я имею ввиду перенести их в свой ответ, развернуть и дополнить его).

Алан Гибизов, Да ну. Все, как выясняется, собирается по default’у из исходников. У автора или Питон из MS Store, или не MS Build Tools установлены, а что-то типа Community Edition.

alexbprofit @alexbprofit
Andy_U, да, если посмотреть на скрин можно увидеть консоль visual studio
alexbprofit @alexbprofit

Не удается открыть файл включение: io.h: No such file or directory.

Решение:
Когда устанавливаешь Visual Studio, убедись что выбран пункт Пакет SDK для Windows 10.0.xxxxx

Ответ написан более двух лет назад
Нравится 1 1 комментарий
Его можно и отдельно поставить.

Начните с установки cffi c https://www.lfd.uci.edu/~gohlke/pythonlibs/ На pypi wheel для 3.10 под Windows отсутствует, а из исходников не собирается.

Ответ написан более двух лет назад
alexbprofit @alexbprofit
У меня собрался
alexbprofit @alexbprofit

D:\env\Scripts>pip install cffi Collecting cffi Using cached cffi-1.14.6.tar.gz (475 kB) Requirement already satisfied: pycparser in d:\env\lib\site-packages (from cffi) (2.20) Building wheels for collected packages: cffi Building wheel for cffi (setup.py) . done Created wheel for cffi: filename=cffi-1.14.6-cp310-cp310-win_amd64.whl size=187365 sha256=b21b240c2d521411ff022bfe3b8a316e83e5a3645efd3ad0260772d750288dd8 Stored in directory: c:\users\bayer\appdata\local\pip\cache\wheels\0a\86\5c\ed57630c5804396f222b4f3c22a9e951263c2fb221878e210a Successfully built cffi Installing collected packages: cffi Successfully installed cffi-1.14.6

alexbprofit, Ваша правда, я уже это обнаружил. Видимо, с cftime перепутал. Но у автора вопроса именно тут грабли.

Что-то я начал подозревать, что тут MS Vsisual Studio виновата. У меня просто MS Build Tools установлены, а у автора вопроса, кажется Community Edition? И питон у него в странном месте установлен. Не из MS Store, часом?

alexbprofit @alexbprofit

Andy_U, нет, это стандартный путь установки питона через установщик с сайта. Насчет visual studio, да вы правы.

Eel 0.16.0

Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.

Eel hosts a local webserver, then lets you annotate functions in Python so that they can be called from Javascript, and vice versa.

Eel is designed to take the hassle out of writing short and simple GUI applications. If you are familiar with Python and web development, probably just jump to this example which picks random file names out of the given folder (something that is impossible from a browser).

  • Eel
    • Intro
    • Install
    • Usage
      • Directory Structure
      • Starting the app
      • App options
        • Chrome/Chromium flags
        • Callbacks
        • Synchronous returns

        Intro

        There are several options for making GUI apps in Python, but if you want to use HTML/JS (in order to use jQueryUI or Bootstrap, for example) then you generally have to write a lot of boilerplate code to communicate from the Client (Javascript) side to the Server (Python) side.

        The closest Python equivalent to Electron (to my knowledge) is cefpython. It is a bit heavy weight for what I wanted.

        Eel is not as fully-fledged as Electron or cefpython — it is probably not suitable for making full blown applications like Atom — but it is very suitable for making the GUI equivalent of little utility scripts that you use internally in your team.

        For some reason many of the best-in-class number crunching and maths libraries are in Python (Tensorflow, Numpy, Scipy etc) but many of the best visualization libraries are in Javascript (D3, THREE.js etc). Hopefully Eel makes it easy to combine these into simple utility apps for assisting your development.

        Join Eel’s users and maintainers on Discord, if you like.

        Install

        Install from pypi with pip :

        pip install eel

        To include support for HTML templating, currently using Jinja2:

        pip install eel

        An Eel application will be split into a frontend consisting of various web-technology files (.html, .js, .css) and a backend consisting of various Python scripts.

        All the frontend files should be put in a single directory (they can be further divided into folders inside this if necessary).

        my_python_script.py  

        Starting the app

        Suppose you put all the frontend files in a directory called web , including your start page main.html , then the app is started like this;

        This will start a webserver on the default settings (http://localhost:8000) and open a browser to http://localhost:8000/main.html.

        If Chrome or Chromium is installed then by default it will open in that in App Mode (with the --app cmdline flag), regardless of what the OS's default browser is set to (it is possible to override this behaviour).

        App options

        Additional options can be passed to eel.start() as keyword arguments.

        Some of the options include the mode the app is in (e.g. 'chrome'), the port the app runs on, the host name of the app, and adding additional command line flags.

        As of Eel v0.12.0, the following options are available to start() :

        • mode, a string specifying what browser to use (e.g. 'chrome' , 'electron' , 'edge' , 'custom' ). Can also be None or False to not open a window. Default: 'chrome'
        • host, a string specifying what hostname to use for the Bottle server. Default: 'localhost' )
        • port, an int specifying what port to use for the Bottle server. Use 0 for port to be picked automatically. Default: 8000 .
        • block, a bool saying whether or not the call to start() should block the calling thread. Default: True
        • jinja_templates, a string specifying a folder to use for Jinja2 templates, e.g. my_templates . Default: None
        • cmdline_args, a list of strings to pass to the command to start the browser. For example, we might add extra flags for Chrome; eel.start('main.html', mode='chrome-app', port=8080, cmdline_args=['--start-fullscreen', '--browser-startup-dialog']) . Default: []
        • size, a tuple of ints specifying the (width, height) of the main window in pixels Default: None
        • position, a tuple of ints specifying the (left, top) of the main window in pixels Default: None
        • geometry, a dictionary specifying the size and position for all windows. The keys should be the relative path of the page, and the values should be a dictionary of the form . Default: <>
        • close_callback, a lambda or function that is called when a websocket to a window closes (i.e. when the user closes the window). It should take two arguments; a string which is the relative path of the page that just closed, and a list of other websockets that are still open. Default: None
        • app, an instance of Bottle which will be used rather than creating a fresh one. This can be used to install middleware on the instance before starting eel, e.g. for session management, authentication, etc. If your app is not a Bottle instance, you will need to call eel.register_eel_routes(app) on your custom app instance.
        • shutdown_delay, timer configurable for Eel's shutdown detection mechanism, whereby when any websocket closes, it waits shutdown_delay seconds, and then checks if there are now any websocket connections. If not, then Eel closes. In case the user has closed the browser and wants to exit the program. By default, the value of shutdown_delay is 1.0 second

        Exposing functions

        In addition to the files in the frontend folder, a Javascript library will be served at /eel.js . You should include this in any pages:

        Including this library creates an eel object which can be used to communicate with the Python side.

        Any functions in the Python code which are decorated with @eel.expose like this.

        . will appear as methods on the eel object on the Javascript side, like this.

        Similarly, any Javascript functions which are exposed like this.

                      can be called from the Python side like this.

        The exposed name can also be overridden by passing in a second argument. If your app minifies JavaScript during builds, this may be necessary to ensure that functions can be resolved on the Python side:

         When passing complex objects as arguments, bear in mind that internally they are converted to JSON and sent down a websocket (a process that potentially loses information).

        Eello, World!

        Putting this together into a Hello, World! example, we have a short HTML page, web/hello.html :

                   and a short Python script hello.py :

        If we run the Python script ( python hello.py ), then a browser window will open displaying hello.html , and we will see.

        Hello from Python World! Hello from Javascript World! 

        . in the terminal, and.

        Hello from Javascript World! Hello from Python World! 

        . in the browser console (press F12 to open).

        You will notice that in the Python code, the Javascript function is called before the browser window is even started - any early calls like this are queued up and then sent once the websocket has been established.

        Return values

        While we want to think of our code as comprising a single application, the Python interpreter and the browser window run in separate processes. This can make communicating back and forth between them a bit of a mess, especially if we always had to explicitly send values from one side to the other.

        Eel supports two ways of retrieving return values from the other side of the app, which helps keep the code concise.

        To prevent hanging forever on the Python side, a timeout has been put in place for trying to retrieve values from the JavaScript side, which defaults to 10000 milliseconds (10 seconds). This can be changed with the _js_result_timeout parameter to eel.init . There is no corresponding timeout on the JavaScript side.

        Callbacks

        When you call an exposed function, you can immediately pass a callback function afterwards. This callback will automatically be called asynchronously with the return value when the function has finished executing on the other side.

        For example, if we have the following function defined and exposed in Javascript:

            Then in Python we can retrieve random values from the Javascript side like so:
          (It works exactly the same the other way around).
        Synchronous returns

        In most situations, the calls to the other side are to quickly retrieve some piece of data, such as the state of a widget or contents of an input field. In these cases it is more convenient to just synchronously wait a few milliseconds then continue with your code, rather than breaking the whole thing up into callbacks.

        To synchronously retrieve the return value, simply pass nothing to the second set of brackets. So in Python we would write:

         You can only perform synchronous returns after the browser window has started (after calling eel.start() ), otherwise obviously the call will hang.

        In Javascript, the language doesn't allow us to block while we wait for a callback, except by using await from inside an async function. So the equivalent code from the Javascript side would be:

        Eel is built on Bottle and Gevent, which provide an asynchronous event loop similar to Javascript. A lot of Python's standard library implicitly assumes there is a single execution thread - to deal with this, Gevent can "monkey patch" many of the standard modules such as time . This monkey patching is done automatically when you call import eel . If you need monkey patching you should import gevent.monkey and call gevent.monkey.patch_all() before you import eel . Monkey patching can interfere with things like debuggers so should be avoided unless necessary.

        For most cases you should be fine by avoiding using time.sleep() and instead using the versions provided by gevent . For convenience, the two most commonly needed gevent methods, sleep() and spawn() are provided directly from Eel (to save importing time and/or gevent as well).

        In this example.

        . we would then have three "threads" (greenlets) running;

        1. Eel's internal thread for serving the web folder
        2. The my_other_thread method, repeatedly printing "I'm a thread"
        3. The main Python thread, which would be stuck in the final while loop, repeatedly printing "I'm a main loop"

        Building distributable binary with PyInstaller

        If you want to package your app into a program that can be run on a computer without a Python interpreter installed, you should use PyInstaller.

        1. Configure a virtualenv with desired Python version and minimum necessary Python packages
        2. Install PyInstaller pip install PyInstaller
        3. In your app's folder, run python -m eel [your_main_script] [your_web_folder] (for example, you might run python -m eel hello.py web )
        4. This will create a new folder dist/
        5. Valid PyInstaller flags can be passed through, such as excluding modules with the flag: --exclude module_name . For example, you might run python -m eel file_access.py web --exclude win32com --exclude numpy --exclude cryptography
        6. When happy that your app is working correctly, add --onefile --noconsole flags to build a single executable file

        Microsoft Edge

        For Windows 10 users, Microsoft Edge ( eel.start(. mode='edge') ) is installed by default and a useful fallback if a preferred browser is not installed. See the examples:

        • A Hello World example using Microsoft Edge: examples/01 - hello_world-Edge/
        • Example implementing browser-fallbacks: examples/07 - CreateReactApp/eel_CRA.py

        Eel в Python – библиотека для красивого интерфейса

        В этом руководстве мы обсудим использование библиотеки Eel в языке программирования Python для разработки красивого пользовательского интерфейса для программ Python с помощью HTML, CSS и JavaScript.

        Мы разделили руководство на два раздела. Первый раздел основан на фундаментальной теории библиотеки Eel в Python. В другом разделе мы покажем реализацию библиотеки , создав простое приложение, которое принимает два целых числа в качестве входных данных от пользователя и возвращает их сумму.

        Что такое Eel в Python?

        Eel в Python – это небольшая библиотека на языке программирования Python, которая позволяет программистам создавать простые электронные приложения с автономным графическим интерфейсом пользователя (GUI) на основе HTML и JavaScript с полным доступом к возможностям и библиотекам Python.

        Eel может размещать локальный веб-сервер, а затем позволяет программистам аннотировать методы и функции в Python, чтобы мы могли вызывать их из JavaScript и наоборот. Эта библиотека разработана для того, чтобы избавить вас от неудобств при написании простых и коротких приложений с графическим интерфейсом.

        Рассмотрим рисунок, изображающий концепцию Eel.

        Eel в Python

        Файлы HTML, CSS и JavaScript хранятся в одном каталоге и инициализируются с помощью программы python. Файл JS обеспечивает соединение между HTML-страницей и Python с помощью функций, активируемых событиями onclick с HTML-страницы.

        Реализация библиотеки

        В следующем разделе рассматривается создание простого приложения с помощью библиотеки Eel в демонстрационных целях. Идея приложения заключается в том, что программа принимает два числа со страницы HTML, складывает их в Python и показывает результат пользователю.

        Но прежде чем мы начнем создавать приложение, давайте установим библиотеку Eel.

        Мы будем использовать установщик pip. Синтаксис установки показан ниже:

        $pip install eel

        Далее мы будем использовать код Visual Studio для создания этого проекта. Мы создали папку с именем «Web_test». В этой папке мы создали другую папку с именем «myWeb». В этой папке будут храниться следующие файлы:

        Для страницы HML мы создадим три текстовые области и кнопку. Давайте рассмотрим следующий фрагмент кода для того же.

        В приведенном выше фрагменте кода мы создали HTML-страницу, на которой мы определили три текстовые области с разными идентификаторами. ‘Int1’ и ‘int2’ предназначены для получения ввода от пользователя, а текстовая область ‘res’ предназначена для отображения результата. Кнопка с имеет прикрепленную к ней функцию onclick, определенную в файле JS.

        Теперь давайте рассмотрим фрагмент кода для файла JS.

        document.querySelector("button").onclick = function summation() < var data_1 = document.getElementById("int1").value var data_2 = document.getElementById("int2").value eel.add(data_1, data_2)(call_Back) >function call_Back(output)

        В приведенном выше фрагменте кода мы определили функцию как summing(), которая активируется посредством события onclick. Внутри функции мы получили значения int1 и int2 и передали их функции sum, которая будет определена в файле Python. Функция call_Back() принимает «output» в качестве аргумента, возвращаемого методом Python с именем «sum».

        Этот «вывод» возвращается в текстовой области с идентификатором «res».

        Теперь давайте рассмотрим фрагмент кода для файла Python.

        # importing the eel library import eel # initializing the application eel.init("myWeb") # using the eel.expose command @eel.expose # defining the function for addition of two numbers def add(data_1, data_2): int1 = int(data_1) int2 = int(data_2) output = int1 + int2 return output # starting the application eel.start("myWebpage.html")

        В приведенном выше фрагменте кода мы импортировали библиотеку eel и инициализировали приложение с помощью команды eel.init («имя папки»), где мы назначили «myweb» в качестве имени папки.

        Затем мы использовали команду eel.expose, в которой мы определили функцию «add», которая добавит «data_1» к «data_2» и вернет результирующее значение как «output». Значение, хранящееся в «output», выбирается функцией «call_Back» в файле JS и помещается на веб-страницу HTML.

        Затем мы инициализировали приложение с помощью команды eel.start (“html filename”), указав имя файла как “myWebpage.html”.

        Теперь давайте сохраним файл python и выполним его, используя следующий синтаксис, чтобы увидеть результат.

        $ python my_sum.py

        На следующем рисунке показан разработанный пользовательский интерфейс.

        Разработанный пользовательский интерфейс

        По умолчанию библиотека Python Eel использует веб-браузер Google Chrome для запуска приложения; однако мы также можем упомянуть браузер с помощью опции «режим». Наряду с «режимом» есть несколько других доступных вариантов приложения, таких как «положение», «размер», «геометрия» и многие другие, которые передаются внутри команды eel.start().

        Заключение

        В приведенном выше руководстве мы обсудили библиотеку Eel и ее использование в Python. Мы узнали, что эта библиотека помогает программистам создавать автономные приложения на основе HTML и JavaScript.

        С помощью библиотеки Eel мы получаем возможности Python, включая свободу разработки пользовательского интерфейса с помощью HTML, а также CSS. Хотя по популярности Eel уступает своему главному конкуренту Electron; однако есть много программистов, чей первый выбор – Eel для создания простых приложений с графическим интерфейсом пользователя(GUI).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *