python-efl/README.md

79 lines
3.7 KiB
Markdown
Raw Normal View History

2021-12-06 00:26:49 -08:00
# Python bindings for the EFL
2021-11-11 22:51:27 -08:00
2021-12-06 00:26:49 -08:00
EFL, or the *Enlightenment Foundation Libraries*, is a collection of libraries for handling many common tasks such as data structures, communication, rendering, widgets and more. Read more on the [efl web site](https://www.enlightenment.org/about-efl).
Python-EFL are the python bindings for the whole EFL stack (evas, ecore, edje, emotion, ethumb and elementary). You can use Python-EFL to build a portable GUI application in minutes.
The documentation for Python-EFL is available [here](https://docs.enlightenment.org/python-efl/current/).
## Install from pypi
The last stable release is always available on pypi, and pip is the raccomanded way to install Python-EFL:
```
pip install python-efl
```
The only requirement is to have the EFL already installed on your machine, see [here](https://www.enlightenment.org/docs/distros/start) for install instructions for various linux distro or for building EFL from sources.
NOTE: Currently only sources packages are available on pip, this means that the installation will be quite long as it need to compile all the modules, and that you need a C compiler for installation to work (we highly suggest to use clang as your C compiler). For the next release we have plans to also upload binary packages on pypi, so the installation will be blazing fast and will have zero dependencies!
## Install from released tarballs
2021-11-11 22:51:27 -08:00
All the stable releases of python-efl can always be found at:
https://download.enlightenment.org/rel/bindings/python/
2021-11-11 22:51:27 -08:00
2021-12-06 00:26:49 -08:00
To install download and unpack a tarball and run:
2021-11-11 22:51:27 -08:00
```
python setup.py build
2021-12-06 00:26:49 -08:00
python setup.py install --user
or
sudo python setup.py install (for sistem-wide installation)
2021-11-11 22:51:27 -08:00
```
NOTE: due to strange cython+gcc behaviour we highly suggest to build python-efl using clang. If you experience issues using gcc (like memory exhausted or strange compile errors) just use clang in this way:
```
2021-11-16 23:58:51 -08:00
CC=clang python setup.py build
2021-11-11 22:51:27 -08:00
```
## Source repository
2021-12-06 00:26:49 -08:00
If you would like to contribute to Python-EFL and make changes to the Python-EFL code you need to build from **git**. Development take place in the **master** branch, while we backport bugfixes in the release branches. You will find a branch for each released version, branches are named as **python-efl-X.X**.
To build from git you also need to have [Cython](https://cython.org/) installed.
2021-11-11 22:51:27 -08:00
### Main repository
https://git.enlightenment.org/bindings/python/python-efl.git/
2021-12-06 00:26:49 -08:00
### GitHub repository
2021-11-11 22:51:27 -08:00
https://github.com/DaveMDS/python-efl
The GitHub repo has been created to simplify the workflow for people that do
not have a git account in the E repo, and thus improving collaboration.
Feel free to make pull requests on GitHub.
## Documentation
2021-12-06 00:26:49 -08:00
Documentation for the last stable release can be found [here](https://docs.enlightenment.org/python-efl/current/).
2021-11-11 22:51:27 -08:00
Additionally you can generate the documentation yourself from the source code using the following command:
```
python setup.py build build_doc
```
2021-12-06 00:26:49 -08:00
The HTML generated documentation will be available in the folder: `build/sphinx/html/`
2021-11-11 22:51:27 -08:00
## Some of the projects using Python-EFL (in random order)
| **Project** | **Website** |
| -- | -- |
| **EpyMC** - Media Center | https://github.com/DaveMDS/epymc |
| **Espionage** - D-Bus inspector | https://phab.enlightenment.org/w/projects/espionage/ |
| **Epour** - BitTorrent Client | https://phab.enlightenment.org/w/projects/epour/ |
| **Eluminance** - Fast photo browser | https://github.com/DaveMDS/eluminance |
| **Egitu** - Git User Interface | https://github.com/DaveMDS/egitu |
| **Edone** - GettingThingsDone | https://github.com/DaveMDS/edone |
| **Epack** - Archive extractor | https://github.com/wfx/epack |
... and many more that cannot fit in this short list. If have some code and want it in this list just let us know.