Ich habe aus Versehen Python - Pakete auf meinem System installiert verwenden pip
statt apt-get
. Ich habe das auf zwei Arten gemacht:
- Bei Verwendung einer älteren Version von virtualenv habe ich vergessen,
--no-site-packages
beim Erstellen von virtualenv Anhänge hinzuzufügen. Nach dem Aufrufenpip install
wurden die Python-Pakete auf dem System installiert und nicht auf virtualenv - In einem korrekt eingerichteten virtuellen Env habe ich Folgendes eingegeben
sudo pip install somepackage
: das Sudo, das auf dem System installiert ist, und nicht das virtuelle Env
Ich bemerkte dies zufällig, weil ich pip freeze
außerhalb eines virtuellen Fensters tippte und einige der aufgelisteten Python-Pakete entdeckte, die nicht dort sein sollten. Nun ist meine Frage:
- Wie identifiziere ich alle Python-Pakete, die fälschlicherweise auf dem System installiert wurden (dh Python-Pakete, die in der
pip freeze
Liste angezeigt werden, aber nicht mit installiert wurdenapt-get
)? - Wie entferne ich sie?
python
package-management
pip
david.libremone
quelle
quelle
sudo rm -r /usr/local/lib/python2.7
. So weit, ist es gut./usr/local/lib/python3.5
und nach einer Weile ein Upgrade desupdate-notifier-common
Pakets fehlgeschlagen, weil Python 3-six
Paket fehlt . Ich landete Installationsix
mitsudo -H pip3 install six
./usr/local/bin/
(vor einer Weile habe ich gerade entfernt/usr/local/lib/python3.5
und auf conda umgestellt ).Pip ignoriert derzeit Deinstallationsbefehle, die versuchen, etwas zu deinstallieren, das dem Betriebssystem gehört. Es kommt nicht zu Fehlern, wie es bei einem fehlenden Paket der Fall ist. So, jetzt können Sie mit dem folgenden Prozess deinstallieren:
Bearbeiten Sie die Speicherauszugsdatei, um alle
-e
"bearbeitbaren Installations" -Zeilen zu entfernen. Tauschen Sie die neuen Zeilen nach dem==
Zeichen (%s;==.*;;g
in vim) gegen Leerzeichen (%s;\n; ;g
in vim) aus. Dann können Sie alle nicht im Besitz befindlichen Pakete mit deinstallierenIch musste diesen Vorgang zweimal durchführen, da auch ein paar Pakete installiert
~/.local/lib
waren.quelle
sudo pip uninstall -y $(pip freeze | sed 's;==.*;;g' | tr '\n' ' ')
pip
. Auf Archlinuxpip
deinstalliert glücklich Systempakete. Auf der anderen Seitepip
beschwert sich über Debian Jessie und Fehler:Not uninstalling virtualenv at /usr/lib/python3/dist-packages, owned by OS
AFAIK
sudo pip install
wird am installiert/usr/local/lib/pythonVERSION/dist-packages
. Sie müssen ausgeführt werden,sudo pip uninstall
um Pakete systemweit zu deinstallieren. Espip freeze
sieht so aus, als würde nach Paketmetadaten gesucht und alles, was installiert ist, aufgelistet, dh sowohl von pip als auch von apt-get außerhalb von virtualenvs.-l
In der virtuellen Umgebung gibt es die Möglichkeit, Pakete aufzulisten, die nur für diese virtuelle Umgebung gelten. Dies scheint jedoch auch in der virtuellen Umgebung der Fall zu sein. Ich denke, Sie können auch verwandte Pakete löschen,/usr/local/lib/pythonVERSION/dist-packages
aber ich denke, dies ist keine sehr bequeme Methode.quelle
Um ein über pip installiertes Paket zu entfernen, drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um Terminal zu öffnen. Führen Sie beim Öffnen den folgenden Befehl aus.
Nach Paketen suchen
Um festzustellen, welche Python-Pakete von pip installiert wurden,
freeze
geben Sie den Befehl ein, der eine Liste der installierten Pakete und ihrer Versionen enthält. Ich würde vorschlagen, alle Instanzen zu entfernen und mit demsudo apt-get
Befehl neu zu installierenquelle
pip uninstall
wenn ich es überhaupt benutzt habesudo pip install
?pip freeze
zeigt nur die installierten Pakete an (AFAICS).Ich musste den Speicherplatz von Python-Paketen sicher bereinigen. Obwohl dies eine vollständige Bereinigung von Paketen ist, musste ich auch Python-Versionen verschieben, damit ich keine alten Pakete benötigte. Ich habe Folgendes verwendet, um alle meine Paketnamen abzurufen, die ersten beiden Zeilen zu überspringen und die erste Spalte abzurufen und ohne Benutzerinteraktion zu deinstallieren:
quelle
Das hat etwas mit Homebrew zu tun. Ich hatte keine Probleme mit pyodbc auf meinem Mac Air, bis ich Homebrew installiert und es für ein paar Dinge verwendet habe. Ich habe diesen Thread auf Github gefunden , der in einer Lösung endet, die für mich funktioniert hat.
"Wenn Sie Homebrew haben, installieren Sie einfach die ODBC-Header:
und starte "pip install pyodbc" erneut. "
Diese 100% lösten das Problem für mich und dauerten nur einen Moment. Versuch es einmal.
quelle