Ceci est une ancienne révision du document !
Table des matières
Création d'un paquet
- Génération du paquet
Pour créer un paquet Python, il faut lancer la commande python -m pip wheel PATH avec PATH étant la racine du code source.
L'utilisation de python setup.py est dépréciée. Is setup.py deprecated? Archive du 24/09/2024 le 08/10/2024
- Option de compilation
Si on veut passer des options à setup.py, il faut passer par --config-settings=--global-option=BLABLA1 --config-settings=--global-option=BLABLA2=ON. Les options --config-settings et global-option se combinent.
Il faudra bien faire attention à supprimer les options personnalisées de la liste des arguments dans setup.py. Par exemple :
option_arg = next((arg for arg in sys.argv if arg.startswith("option=")), None) if option_arg != None: sys.argv.remove(option_arg) else: option_arg = "option="
cibuildwheel
Il permet de compiler le projet pour n'importe quelle version de Python Options.
Ce n'est intéressant que si le module python contient du code compilé et doit être compilé pour toutes les versions de Python compatibles.
Uniquement testé sous Windows pour générer des versions pour Windows.
Il va télécharger toutes les versions de Python nécessaires et exécuter wheel pour générer le paquet pour chaque version.
python.exe -m pip install cibuildwheel python.exe -m cibuildwheel --output-dir wheelhouse --platform windows
Il se configure avec le fichier pyproject.toml.
[tool.cibuildwheel] build-verbosity = 1 build-frontend = { name = "pip", args = ["--no-clean"] } test-command = "python -m unittest discover {project}/test/python" [tool.cibuildwheel.windows] build = [ "*-win_amd64" ] skip = [ "cp37-win_amd64" ] enable = ["pypy", "pypy-eol"] # Devrait être dans build-system.requires mais cela n'a pas fonctionné pour moi. https://cibuildwheel.pypa.io/en/stable/options/#before-build before-build = "pip install cmake==4.0.3" # N'est pas encore officiellement automatique. https://cibuildwheel.pypa.io/en/stable/options/#repair-wheel-command repair-wheel-command = "delvewheel repair -w {dest_dir} {wheel}"
manylinux
Fournit des images Docker avec toutes les versions de Python pour générer les wheel pour Linux avec la glibc et musl.
Rien n'est automatisé. Les installations de Python sont dans /opt/python/*/bin/python au format cp38-cp38 / cp314-cp314t / pp311-pypy311_pp73.
cibuildwheel supporte manylinux mais je ne l'ai pas testé.
