======Python: Créer son propre package python====== Cette page utilise un exemple en python3 * pymultilame disponible **[[https://github.com/sergeLabo/pymultilame|Sur GitHub]]** **Validé sur debian stretch 9.2 avec pip3** ===== Ressources ===== === sametmax.com === Un article de Sam pas récent mais bien écrit comme toujours, pour le **Choix des outils**, setuptools et pip * [[http://sametmax.com/creer-un-setup-py-et-mettre-sa-bibliotheque-python-en-ligne-sur-pypi/|sametmax.com]] === GALODE Alexandre sur developpez.com === * [[http://deusyss.developpez.com/tutoriels/Python/packaging_pypi/|chez developpez.com]] === Diverses === * [[https://docs.python.org/3/distutils/introduction.html|Documentation python Introduction]] * [[https://docs.python.org/3/distutils/introduction.html#distutils-simple-example|Exemple simple de distutils]] * [[http://www.diveintopython3.net/packaging.html|Packaging à diveintopython3.]] * [[https://www.python.org/dev/peps/pep-0314/|La PEP 314]] ===== Structure du dossier ===== pymultilame/ | +-- .gitignoe + __init__.py avec rien ou quelque chose +-- setup.py +-- README.md +-- LICENSE +-- MANIFEST.in +-- doc +-- /pymultilame | + __init__.py + tcpclient.py + http_download.py etc .... ===== Exemple de setup.py ===== #!/usr/bin/env python3 from setuptools import setup, find_packages setup( name='pymultilame', version='0.7.4', plateformes = 'LINUX', packages=find_packages(), packages_dir = {'' : 'pymultilame'}, author='sergeLabo', description='Python Labomedia Utilities', url='https://labomedia.org', download_url='https://github.com/sergeLabo/pymultilame', license='GPL Version 3', keywords = ["blender", "network", "tools"], classifiers = [ "Programming Language :: Python :: 3", "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: Debian", "Topic :: Blender Game Engine", "Topic :: Network", "Topic :: System"], long_description=open('README.md').read() ) ====Exemple de __init__.py==== #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Ce module propose les outils les plus courrant que j'utilise, et aussi pour retrouver des syntaxes peu utilisée que je n'ai pas en mémoire, mais qui nécessiterait des recherches. """ name = "pymultilame" from pymultilame.http_download import HttpDownload from pymultilame.mytools import MyTools from pymultilame.tcpclient import TcpClient ==== Ressources sur toutes les possibilités des classifiers ==== * [[https://pypi.python.org/pypi?:action=list_classifiers|Liste des classifiers]] ===== Installation ===== ==== Dans le home, dans le dossier des sources ==== Pour le développement, en particulier: pip3 install . ==== Avec pip et téléchargement sur github ==== sudo pip3 install -e git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame Mise à jour: sudo pip3 install --upgrade git+https://github.com/sergeLabo/pymultilame.git#egg=pymultilame =====Utilisation===== * Voir Mes outils personnel avec **[[pymultilame|pymultilame]]** {{tag>python sb}}