| 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.