Mender Blog

How to work with Python applications and modules in Yocto | Mender

Written by Farshad Tavakoli | Dec 11, 2019 5:00:00 AM

Python is one of the most popular programming languages used today and it has been around for more than 2 decades. It is commonly used in the development of applications for IoT and especially in the early stages of product development while developers might still be evaluating projects. The reason for its popularity is because Python is easy and quick to develop, for example the logic is closer to the human thought process by abstracting the details of the computer from the developer such as pointers, and memory management. Though it could make it slower as compared to lower-level languages such as C but business speed outweighs programming execution speed. In today’s business world, in most cases development time matters more than application execution speed and reducing time-to-market for each project enables companies to be much more competitive in addressing customer needs! In short, saving time in the development process would most likely be more cost-effective than performance and execution speed in the application.

In embedded Linux development, there are two approaches when deciding on what operating system to run on. You either build your own distribution such as the Yocto Project or Buidroot or use a binary distribution such as Debian or Raspbian. In the early stages of the product development or proof-of-concept it is common to start out with a binary distribution such as the Beagleboard or Raspberry Pi but as the project scales from evaluation and prototyping phase to mass production a tool that can generate custom distribution and images in a reproducible and automated way would most likely make more sense. The Yocto Project not only is able to build toolchains, bootloaders, kernels and root filesystems as Buildroot is able to, it can also generate a Linux distribution with binary packages that can be installed at runtime.

Learn more in this tutorial on how to work with Python applications and modules in Yocto Project.