Annahmen:
- Ich bin über rot-Hut nicht sicher, aber für Debian/Ubuntu.
- Ich nehme an, Sie verwenden System Python.
- Ich glaube nicht, dass es wichtig ist, aber Sie müssen möglicherweise überprüfen,
pip install --user <package_name>
für lokale Benutzer-Paket installiert.
standardmäßig auf Debian-System installierten Pakete werden bei installiert:
/usr/lib/python2.7/dist-packages/
Und sind pip installierten Pakete installiert unter:
/usr/bin/local/python2.7/dist-packages
Um alle Installationspfade Sie kann innerhalb Ihrer Python-Shell laufen:
import site; site.getsitepackages()
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
Wie die pip freeze docs-l
zeigt Ihnen alle lokalen Installationen von Paketen (d. H. nicht globale Pakete) Sie müssen jedoch in der richtigen Umgebung sein.
pip freeze -l
Wenn Virtualenvs ins Spiel kommen: werden Sie site-packages
Verzeichnisse verwenden.
locate -r '/site-packages$'
beachten Sie auch alle in ein anderes Verzeichnis installiert Pakete werden überhaupt nicht mit dieser Methode befindet: Install a Python package into a different directory using pip?
Schluss Trick, den genauen Installationspfad in pip prüft pip Show mit. Nutze nun einfach die Namen von Pip, pipe diese in eine Pipshow und filtere die Ausgabe für den Name -> Location map.
pip freeze | awk '{split($0,a,"="); print a[1]}' | xargs -P 5 -I {} pip show {} | grep 'Name\|Location'
Ihre Situation ist, mehrere virtualenvs haben, und Sie wollen Pakete über pip von der Root-Ebene installiert überprüfen? – Laszlowaty
Wenn 'pip list' eine Liste aller installierten Pakete zurückgibt, können Sie 'rpm -qa' verwenden, um die Pakete zu finden, die über' rpm' installiert wurden. Der Unterschied zwischen den beiden Paketen sind Pakete, die nicht Ihrer Richtlinie entsprechen. Würde das oben genannte für Sie funktionieren? –
Ich denke, beide Namen sind nicht immer identisch (Byte pro Byte), aber nur ähnlich (gleiche Suche nach dem menschlichen Gehirn). Ein Beispiel: Pip Freeze sagt es "Python-Dateutil", RPM-Name ist der gleiche. Pip Freeze sagt mir "Pillow", wie RPM heißt Python-Pillow ... – guettli