Mise à jour
Mise à jour de la base de données, veuillez patienter...
Site original : Sam & Max: Python, Django, Git et du cul
Quand on a un petit script, on ne veut pas forcément dire aux gens avec lesquels on le partage qu’il faut pip installer toutes les dépendances, ou faire un setup.py complet.
On peut évidemment se tourner vers des solutions de compilation type nuitka, mais si on veut être KISS, on peut juste utiliser pip depuis le code Python:
import pip, sys # On essaye d'importer les dépendances, et si elles sont pas dispos on les installe # pour l'utilisateur courant. def require(*packages): for package in packages: try: if not isinstance(package, str): import_name, install_name = package else: import_name = install_name = package __import__(import_name) except ImportError: cmd = ['install', install] if not hasattr(sys, 'real_prefix'): cmd.append('--user') pip.main(cmd) require('arrow', 'requests', 'minibelt', ('path', 'path.py')) # Et votre script peut joyeusement utiliser ses dépendances import arrow import requests from path import Path from minibelt import window print(Path('.').realpath()) print(arrow.get(), len(list(window(requests.get('http://sametmax.com'))))) |
Bien entendu, ça marche que pour les dépendances en pur Python, mais ça fait déjà un paquet de trucs.
N’oubliez pas qu’on reste dans une solution quick and dirty, ne commencez pas à me mettre ça partout.