Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Packaging de modules Python ====== ==== Version de base ==== * [[https://packaging.python.org/en/latest/tutorials/packaging-projects/]] * https://setuptools.pypa.io/en/latest/index.html Arborescence : <code> . ├── pyproject.toml ├── setup.cfg └── src └── example_package ├── example.py └── __init__.py </code> <code toml pyproject.toml> [build-system] requires = [ "setuptools>=42", "wheel" ] build-backend = "setuptools.build_meta" </code> <code cfg setup.cfg> [metadata] name = example-pkg-YOUR-USERNAME-HERE version = 0.0.1 author = Example Author author_email = author@example.com description = A small example package url = https://github.com/pypa/sampleproject project_urls = Bug Tracker = https://github.com/pypa/sampleproject/issues classifiers = Programming Language :: Python :: 3 License :: OSI Approved :: MIT License Operating System :: OS Independent [options] package_dir = = src packages = find: python_requires = >=3.6 [options.packages.find] where = src </code> <code python example.py> def add_one(number): return number + 1 </code> Le fichier ''%%__init__%%.py'' est vide. On peut construire le paquet avec : <code bash> python3 -m build # ou pip wheel . </code> On peut directement installer le paquet avec (avec ''pip'' pas besoin de construire le paquet avant) : <code bash> pip install . </code> On peut ensuite le désinstaller : <code bash> pip uninstall example-pkg-YOUR-USERNAME-HERE </code> Le module est installé dans ''~/.local/lib/python3.9/site-packages''. Une fois installé le module est utilisable : <code python> from example_package import example example.add_one(3) </code> === Cacher l'organisation interne du module === En mettant dans ''%%__init__%%.py'' : <code python> from .example import * </code> on peut directement faire : <code python> import example_package example_package.add_one(3) </code> === Simplifier l'arborescence === Il est possible de supprimer un niveau dans l'arborescence : <code> . ├── example_package │ ├── example.py │ └── __init__.py ├── pyproject.toml └── setup.cfg </code> Les options dans ''setup.cfg'' deviennent alors seulement : <code cfg> [options] packages = find: python_requires = >=3.6 </code> python/packaging.txt Dernière modification : 2022/03/18 14:26de phsw