Trouvez les packages hors du jour installés par l'outil PIP et mettez-les à jour. Inspiré par DePu (GO). Cependant, pkgu prend en charge les mises à jour complètes et partielles, ce qui est plus pratique et flexible. Il prend également en charge la plate-forme multiplateuse (Windows, Linux, MacOS). ? Pour récupérer les données plus rapidement après la première fois (ou je n'ai pas à exécuter à nouveau la commande), j'utilise SQLite comme cache DB pour stocker les données et je peux rapidement le lire à partir de DB et le présenter à la console.
Cependant, seuls Python3.10 et supérieur sont disponibles maintenant.
Tout d'abord, vous devez installer des dépendances.
Si vous n'avez pas d'outil poetry , veuillez l'installer d'abord. ?: Installation de poésie, sinon, installez directement les packages.
poetry install Et puis, exécutez le script pkgu.py
python3 pkgu.pypip3 install pkgu Une fois l'installation terminée, le fichier exécutable pkgu sera écrit dans le répertoire Python Bin et vous pouvez saisir la commande pkgu -h sur votre terminal pour apprendre à l'utiliser.
# Usage
usage: pkgu [-h] [-v] {update,remove} ...
Upgrade and uninstall python package.
options:
-h, --help show this help message and exit
-v, --version Display pkgu version and information
Available commands:
{update,remove} Available commands
update Update python package.
remove remove python package with its dependencies.
# ------ update ------
options:
-h, --help show this help message and exit
-a, --async_upgrade Update the library asynchronously. Default: False
-d CACHE_FOLDER, --cache_folder CACHE_FOLDER
The cache.db file. Default: ~ /.cache/cache.db
-e EXPIRE_TIME, --expire_time EXPIRE_TIME
The expiration time. Default: 43200
--no-cache Whether to use db cache. Default: False
# ------ remove ------
options:
-h, --help show this help message and exit
-l, --list list unused dependencies, but don ' t uninstall them.
-L, --leaves list leaves (packages which are not used by any others).
-y, --yes don ' t ask for confirmation of uninstall deletions.
-f, --freeze list leaves (packages which are not used by any others) in requirements.txt format
- Aucun package ne doit être mis à niveau.
- Mettez à niveau certains packages expirés.
- Mettre à jour le PKG de manière synchrone
- Mettre à jour le PKG de manière asynchrone
Nous pouvons voir que la méthode asynchrone est plus rapide que la méthode de synchronisation environ 9 secondes (uniquement dans cette situation de test). Alors maintenant, il peut prendre en charge de mettre à jour les bibliothèques Python de manière asynchrone. ?
- Prise en charge des packages de mise à jour sélectionnables
- Prise en charge de l'utilisation du cache Résultat du fichier DB SQLite.
Cela améliore l'expiration de la façon dont nous énumérons les packages hors du jour lorsqu'ils sont énormes à collecter, et il y a également un drapeau CLI --no-cache pour contrôler s'il faut utiliser le cache.
- !!! NOUVEAU - Prise en charge du package de désinstallation avec ses dépendances ensemble.