Créer son propre package python
De Centre de Ressources Numériques - Labomedia
Cette page utilise un exemple
- mylabotools (anciennement labtools mais le nom était déjà utilisé)
disponible à https://github.com/sergeLabo/mylabotools
Validé sur debian stretch 9.2 avec pip
Sommaire
Ressources
sametmax.com
Un article de Sam pas récent mais bien écrit comme toujours, pour le Choix des outils, setuptools et pip
mais:
Sam Post le 12/12/2017 at 14:01:
C’est un vieil article valable uniquement pour Python 2 qu’il faudra un jour que j’update.
Or un vieil adage dit: Plus de python2 !
GALODE Alexandre sur developpez.com
Diverses
- https://docs.python.org/3/distutils/introduction.html
- https://docs.python.org/3/distutils/introduction.html#distutils-simple-example
- http://www.diveintopython3.net/packaging.html
- https://www.python.org/dev/peps/pep-0314/
Structure du dossier
mylabotools/
|
+ __init__.py avec rien ou quelque chose
+-- setup.py
+-- README.md
+-- LICENSE
+-- MANIFEST.in
+-- /mylabotools
|
+ labfifolist.py
+ labconfig.py
etc ....
Exemple de setup.py
#!/usr/bin/env python3
from distutils.core import setup
setup( name='mylabotools',
packages = ["mylabotools"],
version='1.26',
description='Python Labomedia Utilities',
author='sergeLabo',
url='https://labomedia.org',
download_url='https://github.com/sergeLabo/mylabotools',
license='GPL Version 2',
keywords = ["blender", "netwoek", "tools"],
classifiers = [ "Programming Language :: Python",
"Programming Language :: Python :: 3",
"Development Status :: 1",
"Environment :: Linux",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
"Operating System :: Debian",
"Topic :: Blender Game Engine"
"Topic :: Network",
"Requires: re"],
long_description = """\
Tools used every day
--------------------
Tools for Blender Game Engine Python Script
""",
py_modules=['labfifolist',
'labformatter',
'labgetmyip',
'labconfig',
'labgetmyip',
'labmulticast',
'labtcpclient',
'labudpclient',
'labsometools',
'labsound',
'labtempo',
'labtexturechange',
'labviewport',
'labirctwisted',
'labmulticasttwisted',
'labtcptwisted']
)
Ressources sur toutes les possibilités des classifiers
Installation
Directe dans le dossier des sources
sudo python3 setup.py install
Avec pip et téléchargement sur github
sudo pip3 install -e git+https://github.com/sergeLabo/mylabotools.git#egg=mylabotools
Mise à jour:
sudo pip3 install --upgrade git+https://github.com/sergeLabo/mylabotools.git#egg=mylabotools
Utilisation
import mylabotools
ou
from mylabotools import labtcpclient
A faire
- créer une doc avec sphinx ou doxygen
- créer des dossiers par type: blender, network, bazar
- créer un package lalabomedia, digue dondaine