Leider gibt es keine Möglichkeit, dies mit den vorhandenen Befehlszeilentools zu überprüfen, da die Auflistung von Paketen mit pip
ziemlich begrenzt ist (ich denke, es wird mehr möglich sein, sobald # 4575 implementiert ist). Mit etwas Scripting können Sie jedoch die Paketfilterung und den Versionsvergleich selbst durchführen. Hier ist ein Vorschlag:
#!/usr/bin/env python3 from distutils.version import LooseVersion from pkg_resources import find_distributions sys_pkgs = find_distributions('/usr/lib/python3/dist-packages') local_pkgs = find_distributions('/usr/local/lib/python3.6/dist-packages') for pkg in local_pkgs: sys_pkg = next((p for p in sys_pkgs if p.project_name == pkg.project_name), None) if sys_pkg is not None and LooseVersion(sys_pkg.version) >= LooseVersion(pkg.version): print(pkg)
Zunächst wird der Skript - Scans /usr/lib/python3/dist-packages
und /usr/local/lib/python3.6/dist-packages
für installierte Pakete (stellen Sie die Python - Version / Zielpfade je nach Bedarf). Danach überprüfen Sie für jedes "lokale" Paket Folgendes:
- Ein "System" -Paket mit demselben Namen wird installiert und
- hat eine neuere Version als die "lokale"
Wenn beide Bedingungen erfüllt sind, gilt das "lokale" Paket als veraltet und wird gedruckt. Nachdem Sie die Liste erstellt haben, sollte das Deinstallieren der Einträge über gewöhnliches pip3 uninstall <pkgname>
eine einfache Aufgabe sein.