Как установить kivy python
Перейти к содержимому

Как установить kivy python

  • автор:

Kivy Python

Kivy это фреймворк на Python с открытым исходным кодом для разработки кроссплатформенных приложений.

Нашел этот фреймворк, когда понадобилось написать мобильное приложения для получение данных по API с сайта на Django, вроде показался не очень сложным, а главное позволил создать приложение для Android на Python.

Это не учебник и не подробная статья по Kivy, а просто пример создания приложения уровня HelloWorld.

Для начала установим Kivy, согласно официальной документации через pip это делается командой:

pip install kivy[base]

Первая программа на фреймворке Kivy

После установки, проверим работоспособность kivy создав простое первое приложение, которое выведет нам Привет мир!

Создадим файл hello.py со следующим содержимым:

from kivy.app import App from kivy.uix.label import Label class MainApp(App): def build(self): label = Label(text='Привет мир!') return label if __name__ == '__main__': app = MainApp() app.run()

Запускаем и видим наше приложение:

Первое приложение на фреймворке kivy

Каждому приложению Kivy требуется создать подкласс App и переопределить метод build(), что мы и сделали. Сюда мы поместили код, который создает виджет Label с переданным значением text.

В Kivy все элементы располагаются на layout и чтобы вывести несколько элементов (например слова «привет» и «мир» мы хотим разместить на разных виджетах Label), нам нужно расположить их на нем.

Всего существует 8 видов лайаутов, о них можно почитать в официальной документации: https://kivy.org/doc/stable/gettingstarted/layouts.html

Для нашего примера будем использовать BoxLayout, в нем все элементы располагаются друг за другом при горизонтальной ориентации или друг под другом при вертикальной.

Изменим метод build чтобы он возвращал нам не один элемент интерфейса, а слой с несколькими элементами:

 def build(self): layout = BoxLayout() label1 = Label(text='Привет') label2 = Label(text='мир!') layout.add_widget(label1) layout.add_widget(label2) return layout

Не забудем импортировать BoxLayout

from kivy.uix.boxlayout import BoxLayout

Теперь запустим и увидим нужный результат:

Программа на kivy с двумя виджетами Label на BoxLayout

Все работает, но не видно где заканчивается один Label и начинается второй. Например, я хочу поменять фон и работать с позиционированием элементов, для этого в киви существует язык разметки.

Сделаем отдельный файл с этой разметкой, он должен иметь расширение kv, по умолчанию метод run() будет искать с файл с именем нашего класса без App, т.е. в нашем случае main.kv

Перепишем пример выше, сначала код файла main.kv:

: Label: text: 'Привет' Label: text: 'Мир'

Теперь изменим код hello.py на:

from kivy.app import App from kivy.uix.boxlayout import BoxLayout class MainWidget(BoxLayout): pass class MainApp(App): def build(self): return MainWidget() if __name__ == '__main__': app = MainApp() app.run()

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

Начнем доработку внешнего вида, для этого поменяем файл main.kv. Во первых сделаем разные цвета для наших Label и отделим их друг от друга:

: orientation: 'vertical' padding: 20 spacing: 20 Label: markup: True text: '[color=000000]Привет[/color]' canvas.before: Color: rgba: 1, 1, 1, 1 Rectangle: pos: self.pos size: self.size Label: text: 'Мир' canvas.before: Color: rgba: 1, .5, 0, 1 Rectangle: pos: self.pos size: self.size 

Работа с внешнем видом в фреймворке kivy

Усложняем программу

Теперь сделаем программу чуть сложнее чем Helloworld, сделаем чтобы мы вводили в нее свое имя и она с нами здоровалась.

Она должна выглядеть вот так:

Конечная программа на фреймворке Kivy Python

Сверху картинка, потом поле ввода, потом надпись, потом кнопка.

Файл шаблона (main.kv) у меня получился таким:

: orientation: 'vertical' padding: 20 spacing: 20 Image: source: 'hello.png' TextInput: multiline: False size_hint: (.5, None) pos_hint: height: 50 font_size: 30 Label: font_size: 30 text: 'Напишите как вас зовут' Button: font_size: 30 text: 'Поздороваться' size_hint: (.5, None) pos_hint:

hello.png — это файл с картинкой с надписью hello, в моем случае он лежит в корне проекта

Теперь осталось сделать чтобы программа выполняла свою функцию и здоровалась с нами по нажатию кнопки «Поздороваться».

Сначала добавим в класс MainWidget добавим метод say_hello():

class MainWidget(BoxLayout): def say_hello(self): print('тест кнопки')

Он будет вызываться по нажатию кнопки. Для того чтобы кнопка реагировала на нажатие, добавим ей атрибут on_press, который будет вызывать метод say_hello():

Button: font_size: 30 text: 'Поздороваться' size_hint: (.5, None) pos_hint: on_press: root.say_hello()

Если сейчас запустить программу и нажать на кнопку «Поздороваться», то в консоли мы получим сообщение «тест кнопки».

smiley

Если так, то пока все работает правильно

Дальше нужно сделать, чтобы в Label менялся текст на тот, который введен в виджете TextInput.

Для этого нам нужно получить доступ к свойству text этих виджетов.

Для этого импортируем класс ObjectProperty и создадим 2 экземпляра этого класса:

from kivy.properties import ObjectProperty class MainWidget(BoxLayout): hello_label = ObjectProperty() name_input = ObjectProperty() def say_hello(self): . 

Теперь откроем файл main.kv и добавим индефикаторы для виджетов Label и TextInput, чтобы на них можно было ссылаться из других частей KV файла.

TextInput: id: name Label: id: hello 

Теперь установим эти индефикаторы в значения свойств hello_label и name_input, которые мы определили в методе say_hello():

: orientation: 'vertical' padding: 20 spacing: 20 name_input: name hello_label: hello . 

Теперь мы можем получить доступ к свойству text этих виджетов, изменим методе say_hello():

def say_hello(self): self.hello_label.text = 'Привет ' + self.name_input.text

Собственно все, можно запустить программу и проверить, все должно работать.

Конечная программа на фреймворке Kivy Python

Весь код файлов есть в репозитории на гитхабе https://github.com/alexandrtretyakov/kivy

Категории

Свежие записи

  • Таблицы в админке WordPress (часть 1)
  • Импорт/экспорт Linux WSL
  • Не печатаются заглавные буквы в PowerShell
  • 1С-Битрикс: Ошибка авторизации! Срок действия пароля истек, необходимо сменить пароль.
  • Несколько конфигураций для проекта Django
  • Django inclusion_tag с разными шаблонами

AlexKorablev.ru

AlexKorablev.ru

Александр Кораблев о разработке ПО, ИТ-индустрии и Python.

Проект на Kivy. Часть 1. Настройка окружения

Опубликовано 16 May 2016 в Python

Kivy — интересный проект, который позволяет делать кроссплатформенные GUI приложения, включая мобильные. По слухам. Я решил выяснить можно ли использовать его для создания маленьких приложений на питоне. В этой серии статей я попробую поисследовать Kivy на примере клона «конструктора слов» — одного из упражнений для LingvoLeo.

Эта серия — не учебник, а исследовательский лог моих попыток. В результате я планирую получить собранные приложения для трех платформ минимум: Windows, Mac, Android. Будет здорово, если я соберу еще и iOS версию. В качестве основной платформы для разработки я использую Mac. Так что, все инструкции по установке и настройке окружения будут для этой операционной системы.

Установка

Под мак есть два способа поставить Kivy: скачать бандл или установить зависимости из homebrew, а kivy поставить с помощью pip.

Первый способ (быстрый):

  1. Скачать с http://kivy.org/#download Kivy2.7z (использует системный питон 2.7) или Kivy3.7z (включает в себя Python 3.5)
  2. Распаковываем архив
  3. Копируем в приложения
sudo mv Kivy3.app /Applications/Kivy.app
ln -s /Applications/Kivy.app/Contents/Resources/script /usr/local/bin/kivy

Минус этого способа установки в том, что создается только одно виртуальное окружение на все Kivy проекты. Для маленьких проектов такой способ подойдет, для больших — сомневаюсь. Так что лучше сразу ставить фремворк в свое окружение.

Второй способ (правильный):

Подразумеваю, что вы пользуетесь pyenv и pyenv-virtualenv.

Первым делом ставим зависимости.

brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer gstreamer

Ставим свежий питончик.

pyenv install 3.5.1

Иногда установка падает:

zipimport.ZipImportError: can't decompress data; zlib not available

В этом случае поможет:

xcode-select --install

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

pyenv virtualenv 3.5.1 WordConstructor

Активируем созданное окружение

pyenv activate WordConstructor
pip install -I Cython==0.23
USE_OSX_FRAMEWORKS=0 pip install kivy

Проверим, что все работает. Создадим файлик main.py в папке с проектом с таким содержимым:

from kivy.app import App from kivy.uix.widget import Widget class WordConstructorGame(Widget): pass class WordConstructorApp(App): def build(self): return WordConstructorGame() if __name__ == '__main__': WordConstructorApp().run() 
python main.py

Если открылось окно с заголовком WordConstructor, все установилось и работает как надо.

PyCharm

Теперь настроим проект в пайчарме.

В Preferences выбираем Project interpreter соответствующий нашему виртуальному окружению.

Kivy interpreter

Для описания интерфейсов в Kivy используется свой язык Kv Design Language. Неплохо бы добавить для него подсветку синтаксиса и автокомплит.

  1. Для этого качаем https://github.com/Zen-CODE/kivybits/blob/master/IDE/PyCharm_kv_completion.jar?raw=true
  2. В PyCharm в меню File -> Import Settings импортируем этот файл.
  3. Удостоверившись, что стоит галочка File types, нажимаем OK.
  4. Перезагружаем PyCharm и наслаждаемся результатом.

С настройкой все. В следующей статье обсудим более практические вопросы.


Возник вопрос? Мне всегда можно написать в Twitter: avkorablev

Понравилась статья? Поделись с друзьями!

Установка Kivy (Python 3) на Windows — подробное руководство.

Иконка канала React: основы и лучшие практики

Kivy (Python под Android) — школа практического программирования В. Бовсуновского. http://python-android.spb-tut.ru/ Подробно рассказал, как установить Kivy, начиная с установки Python, создание виртуального окружения в PyCharm, использование командной строки Git и непосредственно установка Kivy. Далее пишем первую программу и радуемся. Страница установки Kivy https://kivy.org/docs/installation/installation-windows.html Git для Виндовс https://git-for-windows.github.io/

Показать больше

Войдите , чтобы оставлять комментарии

Installing Kivy¶

Installation for Kivy version 2.3.0. Read the changelog here . For other Kivy versions, select the documentation from the dropdown on the top left.

Kivy 2.3.0 officially supports Python versions 3.7 — 3.12.

w_logo

m_logo

l_logo

b_logo

r_logo

a_logo

c_logo

Using pip¶

The easiest way to install Kivy is with pip , which installs Kivy using either a pre-compiled wheel , if available, otherwise from source (see below).

Kivy provides pre-compiled wheels for the supported Python versions on Windows, macOS, Linux, and RPi.

If no wheels are available pip will build the package from sources (i.e. on * BSD).

Alternatively, installing from source is required for newer Python versions not listed above or if the wheels do not work or fail to run properly.

On RPi, when using a 32 bit OS, wheels are provided for Python 3.7 (Raspberry Pi OS Buster), Python 3.9 (Raspberry Pi OS Bullseye) and Python 3.11 (Raspberry Pi OS Bookworm) via the PiWheels project.

For other Python versions, on 32 bit OSes, you will need to install from source.

Setup terminal and pip¶

Before Kivy can be installed, Python and pip needs to be pre-installed . Then, start a new terminal that has Python available . In the terminal, update pip and other installation dependencies so you have the latest version as follows (for linux users you may have to substitute python3 instead of python and also add a —user flag in the subsequent commands outside the virtual environment):

python -m pip install --upgrade pip setuptools virtualenv 

Create virtual environment¶

Create a new virtual environment for your Kivy project. A virtual environment will prevent possible installation conflicts with other Python versions and packages. It’s optional but strongly recommended:

    Create the virtual environment named kivy_venv in your current directory:

python -m venv kivy_venv 
kivy_venv\Scripts\activate 

If you are in a bash terminal on Windows, instead do:

source kivy_venv/Scripts/activate 

If you are in linux or macOS, instead do:

source kivy_venv/bin/activate 

Your terminal should now preface the path with something like (kivy_venv) , indicating that the kivy_venv environment is active. If it doesn’t say that, the virtual environment is not active and the following won’t work.

Install Kivy¶

Finally, install Kivy using one of the following options:

Pre-compiled wheels¶

The simplest is to install the current stable version of kivy and optionally kivy_examples from the kivy-team provided PyPi wheels. Simply do:

python -m pip install "kivy[base]" kivy_examples 

This also installs the minimum dependencies of Kivy. To additionally install Kivy with audio/video support, install either kivy[base,media] or kivy[full] . See Kivy’s dependencies for the list of selectors.

The Pillow library is a dependency of both kivy[base] and kivy[full] .

For Windows 32-bit users, please note that the latest releases of Pillow are not available as binary distributions on PyPI. However, Kivy also supports Pillow==9.5.0 , which have a binary distribution for all supported Python versions, even on Windows 32-bit.

If you are on Windows 32-bit and prefer not to build Pillow from source, you can use the —only-binary Pillow flag with the following command to instruct pip to install the binary distribution of Pillow, albeit not the latest version:

python -m pip install --only-binary Pillow "kivy[base]" 

When using Raspberry Pi OS Lite or similar Linux-based headless systems, it may be necessary to install additional dependencies to ensure Kivy functions properly.

For instance, on Raspberry Pi OS Lite, you will be required to install the following dependencies:

apt-get install libgl1-mesa-glx libgles2-mesa libegl1-mesa libmtdev1 
From source¶

If a wheel is not available or is not working, Kivy can be installed from source with some additional steps. Installing from source means that Kivy will be installed from source code and compiled directly on your system.

First install the additional system dependencies listed for each platform: Windows , macOS , Linux , *BSD , RPi

In past, for macOS, Linux and BSD Kivy required the installation of the SDL dependencies from package managers (e.g. apt or brew ). However, this is no longer officially supported as the version of SDL provided by the package managers is often outdated and may not work with Kivy as we try to keep up with the latest SDL versions in order to support the latest features and bugfixes.

You can still install the SDL dependencies from package managers if you wish, but we no longer offer support for this.

Instead, we recommend installing the SDL dependencies from source. This is the same process our CI uses to build the wheels. The SDL dependencies are built from source and installed into a specific directory.

With all the build tools installed, you can now install the SDL dependencies from source for SDL support (this is not needed on Windows as we provide pre-built SDL dependencies for Windows)

In order to do so, we provide a script that will download and build the SDL dependencies from source. This script is located in the tools directory of the Kivy repository.

Create a directory to store the self-built dependencies and change into it:

mkdir kivy-deps-build && cd kivy-deps-build 

Then download the build tool script, according to your platform:

On macOS:

curl -O https://raw.githubusercontent.com/kivy/kivy/master/tools/build_macos_dependencies.sh -o build_kivy_deps.sh 

On Linux:

curl https://raw.githubusercontent.com/kivy/kivy/master/tools/build_linux_dependencies.sh -o build_kivy_deps.sh 

Make the script executable:

chmod +x build_kivy_deps.sh 

Finally, run the script:

./build_kivy_deps.sh 

The script will download and build the SDL dependencies from source. It will also install the dependencies into a directory named kivy-dependencies . This directory will be used by Kivy to build and install Kivy from source with SDL support.

Kivy will need to know where the SDL dependencies are installed. To do so, you must set the KIVY_DEPS_ROOT environment variable to the path of the kivy-dependencies directory. For example, if you are in the kivy-deps-build directory, you can set the environment variable with:

export KIVY_DEPS_ROOT=$(pwd)/kivy-dependencies

With the dependencies installed, and KIVY_DEPS_ROOT set you can now install Kivy into the virtual environment.

To install the stable version of Kivy, from the terminal do:

python -m pip install "kivy[base]" kivy_examples --no-binary kivy 

To install the latest cutting-edge Kivy from master, instead do:

python -m pip install "kivy[base] @ https://github.com/kivy/kivy/archive/master.zip" 

If you want to install Kivy from a different branch, from your forked repository, or from a specific commit (e.g. to test a fix from a user’s PR) replace the corresponding components of the url.

For example to install from the stable branch, the url becomes https://github.com/kivy/kivy/archive/stable.zip . Or to try a specific commit hash, use e.g. https://github.com/kivy/kivy/archive/3d3e45dda146fef3f4758aea548da199e10eb382.zip

Pre-release, pre-compiled wheels¶

To install a pre-compiled wheel of the last pre-release version of Kivy, instead of the current stable version, add the —pre flag to pip:

python -m pip install --pre "kivy[base]" kivy_examples 

This will only install a development version of Kivy if one was released to PyPi. Instead, one can also install the latest cutting-edge Nightly wheels from the Kivy server with:

python -m pip install kivy --pre --no-deps --index-url https://kivy.org/downloads/simple/ python -m pip install "kivy[base]" --pre --extra-index-url https://kivy.org/downloads/simple/ 

It is done in two steps, because otherwise pip may ignore the wheels on the server and install an older pre-release version from PyPi.

Development install¶

We suggest to select master or relevant branch/version of doc from top left, ensuring correct version/branch of kivy git repository you are working with.

If you want to edit Kivy before installing it, or if you want to try fixing some Kivy issue and submit a pull request with the fix, you will need to first download the Kivy source code. The following steps assumes git is pre-installed and available in the terminal.

The typical process is to clone Kivy locally with:

git clone https://github.com/kivy/kivy.git 

This creates a kivy named folder in your current path. Next, follow the same steps of the Installing from source above, but instead of installing Kivy via a distribution package or zip file, install it as an editable install.

In order to do so, first change into the Kivy folder you just cloned:: and then install Kivy as an editable install:

cd kivy python -m pip install -e ".[dev,full]" 

Now, you can use git to change branches, edit the code and submit a PR. Remember to compile Kivy each time you change cython files as follows:

python setup.py build_ext --inplace 

Or if using bash or on Linux, simply do:

make 

To run the test suite, simply run:

pytest kivy/tests 

or in bash or Linux:

make test 

On * BSD Unix remember to use gmake (GNU) in place of make (BSD).

Checking the demo¶

Kivy should now be installed. You should be able to import kivy in Python or, if you installed the Kivy examples, run the demo.

python kivy_venv\share\kivy-examples\demo\showcase\main.py 

in bash, Linux and macOS:

python kivy_venv/share/kivy-examples/demo/showcase/main.py 

The exact path to the Kivy examples directory is also stored in kivy.kivy_examples_dir .

The 3d monkey demo under kivy-examples/3Drendering/main.py is also fun to see.

Installation using Conda¶

If you use Anaconda, you can install Kivy with its package manager Conda using:

conda install kivy -c conda-forge 

Do not use pip to install kivy if you’re using Anaconda, unless you’re installing from source.

Installing Kivy’s dependencies¶

Kivy supports one or more backends for its core providers. E.g. it supports glew, angle, and sdl2 for the graphics backend on Windows. For each category (window, graphics, video, audio, etc.), at least one backend must be installed to be able to use the category.

To facilitate easy installation, we provide extras_require groups that will install selected backends to ensure a working Kivy installation. So one can install Kivy more simply with e.g.«pip install “kivy[base,media,tuio]” « . The full list of selectors and the packages they install is listed in setup.py. The exact packages in each selector may change in the future, but the overall goal of each selector will remain as described below.

We offer the following selectors:

base : The minimum typical dependencies required for Kivy to run,

not including video/audio.

media : Only the video/audio dependencies required for Kivy to

be able to play media.

full : All the typical dependencies required for Kivy to run, including video/audio and

most optional dependencies.

dev : All the additional dependencies required to run Kivy in development mode

(i.e. it doesn’t include the base/media/full dependencies). E.g. any headers required for compilation, and all dependencies required to run the tests and creating the docs.

tuio : The dependencies required to make TUIO work (primarily oscpy).

The following selectors install backends packaged as wheels by kivy under the Kivy_deps namespace. They are typically released and versioned to match specific Kivy versions, so we provide selectors to facilitate installation (i.e. instead of having to do pip install kivy kivy_deps.sdl2==x.y.z , you can now do pip install «kivy[sdl2]» to automatically install the correct sdl2 for the Kivy version).

gstreamer : The gstreamer video/audio backend, if it’s available

(currently only on Windows)

angle : A alternate OpenGL backend, if it’s available

(currently only on Windows)

sdl2 : The window/image/audio backend, if it’s available (currently only on Windows,

on macOS, Linux and * BSD Unix is already included in the main Kivy wheel).

glew : A alternate OpenGL backend, if it’s available (currently only on Windows)

Following are the kivy_deps dependency wheels:

  • gstreamer (optional) kivy_deps.gstreamer is an optional dependency which is only needed for audio/video support. We only provide it on Windows, for other platforms it must be installed independently. Alternatively, use ffpyplayer instead.
  • glew and/or angle kivy_deps.glew and kivy_deps.angle are for OpenGL. You can install both, that is no problem. It is only available on Windows. On other platforms it is not required externally. One can select which of these to use for OpenGL using the KIVY_GL_BACKEND environment variable: By setting it to glew (the default), angle_sdl2 , or sdl2 . Here, angle_sdl2 is a substitute for glew but requires kivy_deps.sdl2 to be installed as well.
  • sdl2 kivy_deps.sdl2 is for window/images/audio and optionally OpenGL. It is only available on Windows and is included in the main Kivy wheel for other platforms.

Python glossary¶

Here we explain how to install Python packages, how to use the command line and what wheels are.

Installing Python¶

Kivy is written in Python and as such, to use Kivy, you need an existing installation of Python. Multiple versions of Python can be installed side by side, but Kivy needs to be installed as package under each Python version that you want to use Kivy in.

To install Python, see the instructions for each platform: Windows , macOS , Linux , RPi , *BSD .

Once Python is installed, open the console and make sure Python is available by typing python —version .

How to use the command line¶

To execute any of the pip or wheel commands given here, you need a command line (here also called console, terminal, shell or bash, where the last two refer to Linux / * BSD Unix style command lines) and Python must be on the PATH.

The default command line on Windows is the command prompt, short cmd. The quickest way to open it is to press Win+R on your keyboard. In the window that opens, type cmd and then press enter.

Alternative Linux style command lines on Windows that we recommend are Git for Windows or Mysys.

Note, the default Windows command line can still be used, even if a bash terminal is installed.

To temporarily add your Python installation to the PATH, simply open your command line and then use the cd command to change the current directory to where python is installed, e.g. cd C:\Python37 .

If you have installed Python using the default options, then the path to Python will already be permanently on your PATH variable. There is an option in the installer which lets you do that, and it is enabled by default.

If however Python is not on your PATH, follow the these instructions to add it:

  • Instructions for the windows command line
  • Instructions for bash command lines

What is pip and what are wheels¶

In Python, packages such as Kivy can be installed with the python package manager, named pip (“python install package”).

When installing from source, some packages, such as Kivy, require additional steps, like compilation.

Contrary, wheels (files with a .whl extension) are pre-built distributions of a package that has already been compiled. These wheels do not require additional steps when installing them.

When a wheel is available on pypi.org (“Python Package Index”) it can be installed with pip . For example when you execute python -m pip install kivy in a command line, this will automatically find the appropriate wheel on PyPI.

When downloading and installing a wheel directly, use the command python -m pip install , for example:

python -m pip install C:\Kivy-1.9.1.dev-cp27-none-win_amd64.whl 

What are nightly wheels¶

Every day we create a snapshot wheel of the current development version of Kivy (‘nightly wheel’). You can find the development version in the master branch of the Kivy Github repository.

As opposed to the last stable release (which we discussed in the previous section), nightly wheels contain all the latest changes to Kivy, including experimental fixes. For installation instructions, see Pre-release, pre-compiled wheels .

Using the latest development version can be risky and you might encounter issues during development. If you encounter any bugs, please report them.

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

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