all:bibles:langages:python:librairies
Différences
Ci-dessous, les différences entre deux révisions de la page.
| all:bibles:langages:python:librairies [2024/06/14 11:10] – créée - modification externe 127.0.0.1 | all:bibles:langages:python:librairies [2025/08/20 10:10] (Version actuelle) – [Utilisation] omeylhoc | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Librairies ====== | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | ==== Base ==== | ||
| + | |||
| + | <code bash> | ||
| + | pip install < | ||
| + | </ | ||
| + | |||
| + | ==== Environnement virtuel ==== | ||
| + | |||
| + | Installer puis utiliser pipenv | ||
| + | |||
| + | ==== Pycharm ==== | ||
| + | |||
| + | * créer un environnement virtuel (proposé par Pycharm lors de la création du projet) | ||
| + | * A postériori aller dans « File / Settings... / Project / Python Interpreter » cliquer sur « + » puis taper le nom du module à rechercher puis en bas cliquer sur « Install Package » | ||
| + | |||
| + | ===== Pipenv ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== Objet ==== | ||
| + | |||
| + | Simplification dans l' | ||
| + | |||
| + | ==== Utilisation ==== | ||
| + | |||
| + | === Installation Ubuntu === | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt install pipenv | ||
| + | </ | ||
| + | |||
| + | === Installation Redhat/ | ||
| + | |||
| + | <code bash> | ||
| + | pip3 install pipenv | ||
| + | </ | ||
| + | |||
| + | === Installation Windows === | ||
| + | |||
| + | * Installer pipenv | ||
| + | |||
| + | <code batch> | ||
| + | pip install pipenv | ||
| + | </ | ||
| + | |||
| + | * Modifier la variable PATH pour ajouter les 2 chemins suivants : | ||
| + | |||
| + | <code batch> | ||
| + | C: | ||
| + | C: | ||
| + | </ | ||
| + | |||
| + | === Initialisation === | ||
| + | |||
| + | Se positionner dans le répertoire du projet et lancer la commande : | ||
| + | |||
| + | <code bash> | ||
| + | pipenv install --python / | ||
| + | </ | ||
| + | |||
| + | La commande va installer toutes les librairies nécessaires et créer les 2 fichiers suivants s'ils n' | ||
| + | |||
| + | * Pipfile : contient les dépendances | ||
| + | * Pipfile.lock : contient les informations de version | ||
| + | |||
| + | === Variables d' | ||
| + | |||
| + | Possibilité de créer un fichier <color # | ||
| + | |||
| + | <code bash> | ||
| + | ## LOG LEVEL ## | ||
| + | LOGURU_LEVEL=DEBUG | ||
| + | </ | ||
| + | |||
| + | === Exécution === | ||
| + | |||
| + | <code bash> | ||
| + | pipenv run python < | ||
| + | </ | ||
| + | |||
| + | ==== Dépannage ==== | ||
| + | |||
| + | === Débordement de tempo === | ||
| + | |||
| + | Si l' | ||
| + | |||
| + | <code bash> | ||
| + | export PIPENV_INSTALL_TIMEOUT=9999 | ||
| + | export PIPENV_TIMEOUT=999 | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Tendo ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== Objet ==== | ||
| + | |||
| + | Ajout de fonctionnalités basiques. | ||
| + | |||
| + | ==== Fonctions ==== | ||
| + | |||
| + | === SingleInstance === | ||
| + | |||
| + | Pour s' | ||
| + | |||
| + | <code python> | ||
| + | from tendo import singleton | ||
| + | |||
| + | singleton.SingleInstance() # fera un sys.exit(-1) si une autre instance est en cours d' | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Loguru ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== Objet ==== | ||
| + | |||
| + | Librairies pour gérer simplement les logs du programme. | ||
| + | |||
| + | ==== Utilisation ==== | ||
| + | |||
| + | === Fonctions === | ||
| + | |||
| + | * debug : information détaillée uniquement pour diagnostiquer un problème | ||
| + | * info : confirmation du déroulement normal du programme | ||
| + | * warning : indication de quelque chose d' | ||
| + | * error : problème plus important, le programme n'a pas pu faire quelque chose | ||
| + | * critical : erreur sérieuse, indique que le programme risque de ne pas pouvoir poursuivre. | ||
| + | |||
| + | === Niveau d' | ||
| + | |||
| + | Chacune des fonctions correspond au niveau de log correspondant. Le niveau par défaut est positionné à '' | ||
| + | |||
| + | === Exemple === | ||
| + | |||
| + | <code python> | ||
| + | from loguru import logger | ||
| + | |||
| + | logger.setLevel(logging.WARNING) | ||
| + | logger.debug(" | ||
| + | logger.info(" | ||
| + | logger.warning(" | ||
| + | logger.error(" | ||
| + | logger.critical(" | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Aiohttp ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== Objet ==== | ||
| + | |||
| + | Client/ | ||
| + | |||
| + | ==== Utilisation ==== | ||
| + | |||
| + | === Serveur === | ||
| + | |||
| + | <code python> | ||
| + | from aiohttp import web | ||
| + | |||
| + | async def handle(request): | ||
| + | name = request.match_info.get(' | ||
| + | text = " | ||
| + | return web.Response(text=text) | ||
| + | |||
| + | app = web.Application() | ||
| + | app.add_routes([web.get('/', | ||
| + | web.get('/ | ||
| + | |||
| + | if __name__ == ' | ||
| + | web.run_app(app) | ||
| + | </ | ||
| + | |||
| + | === Client === | ||
| + | |||
| + | <code python> | ||
| + | import aiohttp | ||
| + | import asyncio | ||
| + | |||
| + | async def main(): | ||
| + | |||
| + | async with aiohttp.ClientSession() as session: | ||
| + | async with session.get(' | ||
| + | |||
| + | print(" | ||
| + | print(" | ||
| + | |||
| + | html = await response.text() | ||
| + | print(" | ||
| + | |||
| + | loop = asyncio.get_event_loop() | ||
| + | loop.run_until_complete(main()) | ||
| + | </ | ||
| + | |||
| + | ---- | ||
