File | Date | Author | Commit |
---|---|---|---|
API | 2019-05-03 |
![]() |
[b73886] Amélioration de la documentation. |
API_Py | 2019-08-05 |
![]() |
[2bbabe] Mise à jour du readme |
GUI | 2019-05-03 |
![]() |
[b73886] Amélioration de la documentation. |
.hgignore | 2019-05-03 |
![]() |
[6db7fc] Amélioration de la documentation du code. |
LICENSE | 2019-04-27 |
![]() |
[81ede3] Traduction de la license en Français. |
Longue_description.md | 2019-04-27 |
![]() |
[81ede3] Traduction de la license en Français. |
README.md | 2019-08-05 |
![]() |
[b11d76] Correction du lien du snapshot. |
icon.png | 2019-05-03 |
![]() |
[40cd9c] amélioration de la documentation de api. |
wxCppPy.workspace | 2019-04-14 |
![]() |
[f7d3ce] Essais d'implémentation de l'export des accès à... |
wxCppPy est un projet écrit en c++ et python.
Il sert de démonstration pour le tutoriel suivant: (en cours d'écritutre)
http://www.suryavarman.fr/python_cpp_pybind_wx/
L'objectif est de démontrer la faisabilitée et la manière de créer une application c++/wxWidgets qui peut être manipuler via python/wxPython.
Pour les besoins de l'explication le dossier de travail sera
/home/utilisateur/travaux/
Vous aurez besoin de :
CMake
Mercurial
Git
python-virtualenv
Commençons par les dépendences:
hg clone http://hg.code.sf.net/p/cppclay/code CppClay
cd CppClay
cmake .
cmake --build
Pour cette aide j'utilise la version 3.5m de python. Le mention «m» se nomme l'abiflags. C'est important à le noter car certains répertoires portent cette mention
[…]/include/python3.5m
et d'autres non.
[…]/lib64/python3.5/site-packages
Réalisant cette aide sur Mageia6 l'exécutable de python ce situe dans le répertoire /usr/bin
et la librairie dans le répertoire /usr/lib64
.
Passons à la création de l'environnement python qui servira au dévellopement de wxCppPy.
Sur Mageia6 l'installation de l'outils python-virtualenv se fait ainsi:
urpmi python-virtualenv
La création de l'environnement se fait donc ainsi
cd /home/utilisateur/travaux/
virtualenv --python=/usr/bin/python3 --system-site-packages venv
L'utilisation virtualenv permet de s'assurer que les includes et les librairies seront présentent dans l'environnement virtuel.
git clone https://github.com/pybind/pybind11.git pybind11
cd pybind11
mkdir build && cd build
cmake .. -DPYTHON_EXECUTABLE=/usr/bin/python3.5m -DDOWNLOAD_CATCH=1
make check -j
Si vous n'êtes pas sur Windows vous n'êtes pas obligé de compiler wxPython. Les en-têtes et les .so sont suffisants.
Snapshots-builds:
Pour se faire télécharger ce snapshot ou si vou pouvez sélectionner le dernier tar.gz ici (snapshot-builds).
Pour cette aide l'archive sélectionnée est wxPython-4.0.5a1.dev4116
Décompressez l'archive. Pour cette aide wxPython sera décompressé dans le répertoire suivant:
/home/utilisateur/travaux/wxPython/wxPython-4.0.5a1.dev4116
Téléchargement à partir du dépôt git:
Si vous compter compiler wxPython à partir du dépot, n'oubliez pas de charger les sous modules. Cela permet de récupérer la version de wxWidgets utilisée.
#!/usr/bin/env bash
WXPYTHON_TAG=wxPython-4.0.6
rm -f -d -r ./${WXPYTHON_TAG}
git clone https://github.com/wxWidgets/Phoenix.git ${WXPYTHON_TAG}
cd ${WXPYTHON_TAG}
git submodule update --init --recursive
git checkout tags/${WXPYTHON_TAG}
Compilation:
Vous trouverez ici la liste des dépendances.
Sur Mageia6 j'ai dû créer un lien symbolique pour que le compilateur trouve libSDL2.so
.
ln -s /lib64/libSDL2-2.0.so.0 /lib64/libSDL2.so
cd /home/utilisateur/travaux/wxPython/wxPython-4.0.5a1.dev4116
/home/utilisateur/travaux/venv/bin/python3 build.py dox doxhtml etg --nodoc sip build --force_config --release --jobs=16
Installation dans l'environnement virtuel python:
cd /home/utilisateur/travaux/venv
./bin/pip3 install ../../wxPython/wxPython-4.0.5a1.dev4116/
Remarques:
Dans un même environnement virtuel python vous pouvez avoir plusieurs version de python. Cela dépend de ce que vous avez fait. Si c'est le cas veillez à mettre le bon numéro de version de pip. Dans mon cas c'est pip3.5
.
Si vous avez le message suivant lors de la compilation: sh: dot : commande introuvable
Ce n'est pas nécessaire car c'est pour la génération de la documentation. Pour corriger cela vous pouvez installer graphviz.
Sur Mageia6 la commande est la suivante: urpmi graphviz
Que vous ayez obté pour les «snapshots-builds» ou le dépôt git avec les submodules, wxWidgets se situra dans Phoenix/ext/wxWidgets
.
Installer le wxCppPy:
hg clone http://hg.code.sf.net/p/wxcpppy/code wxCppPy
Ouvrir la solution:
/home/utilisateur/travaux/wxCppPy/wxCppPy.workspace
Configurer les variables d'environements dans CodeBlocks:
Settings > Environment… > Environment variables
PYTHONENV_PATH = /home/utilisateur/travaux/venv
PYBIND11_PATH = /home/utilisateur/travaux/pybind11
WXPYTHON_PATH = /home/utilisateur/travaux/wxPython/wxPython-4.0.5a1.dev4116
CPPCLAY_PATH = /home/utilisateur/travaux/CppClay
CPPCLAYDLL_PATH = /home/utilisateur/travaux/CppClay/MakeFile/src/clay
PYTHONENV_SP_PATH=home/utilisateur/travaux/venv/lib64/python3.5/site-packages
PYTHONENV_INCLUDE_PATH=/home/utilisateur/travaux/venv/include/python3.5m
Voilà vous n'avez plus cas compiler et exécutez le projet GUI comme sur la vidéo.
Remarques:
API_Py compile une première fois le projet avec Codeblocks et une deuxième fois avec python pour l'installer dans l'environnement virtuel python. Précisement dans le dossier /home/utilisateur/travaux/venv/lib64/python3.5/site-packages/
il installe la librairie wxcpppy.cpython-35m-x86_64-linux-gnu.so
et le dossier wxcpppy-0.0.2-py3.5.egg-info
.
wxCppPy est fourni sous la licence MIT.
Veuillez vous reporter au len suivant: wxCppPy::License
Ce «lisez-moi» a été rédigé à l'aide de Mark Text.