Die Deinstallation von pip ist keine gültige Antwort mehr. Hier ist der Beweis. [sri @ localhost python] $ pip deinstalliert foo DEPRECATION: Die Deinstallation eines installierten distutils-Projekts (foo) ist veraltet und wird in einer zukünftigen Version entfernt. Dies liegt an der Tatsache, dass durch die Deinstallation eines distutils-Projekts das Projekt nur teilweise deinstalliert wird.
Spitzmaus
@Shrewmouse, die nicht mehr angezeigt wird.
JC Rocamonde
@JCRocamonde Mit einem Paket, das ich erstellt habe, wird die neueste Version von pip angezeigt, It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.sodass dies immer noch ein Problem darstellt.
Josh
@Josh oben in Ihrer setup.py-Datei "aus setuptools import setup" anstelle von "from distutils.core import setup".
Bigjake
Antworten:
976
Hinweis: Vermeiden Sie die python setup.py installVerwendungpip install .
Sie müssen alle Dateien manuell entfernen und alle anderen von der Installation manuell durchgeführten Vorgänge rückgängig machen.
Wenn Sie die Liste aller Dateien nicht kennen, können Sie sie mit der --recordOption neu installieren und sich die Liste ansehen, die dadurch erstellt wird.
Um eine Liste der installierten Dateien aufzuzeichnen, können Sie Folgendes verwenden:
python setup.py install --record files.txt
Sobald Sie deinstallieren möchten, können Sie xargs verwenden, um das Entfernen durchzuführen:
xargs rm -rf < files.txt
Wenn Sie Windows ausführen, verwenden Sie Powershell:
Löschen Sie dann auch das enthaltende Verzeichnis, zB /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/auf macOS. Es hat keine Dateien, aber Python importiert trotzdem ein leeres Modul:
>>>import my_module
>>> my_module.__file__
None
Nach dem Löschen zeigt Python:
>>>import my_module
Traceback(most recent call last):File"<stdin>", line 1,in<module>ModuleNotFoundError:No module named 'my_module'
Wie kann ich das Paket neu installieren, für das ich den Quellcode für die Verwendung von setup.py habe?
ス レ ッ ク
5
Dadurch bleiben auch leere Verzeichnisse an ihrer Stelle.
Dilawar
3
Hallo, ich habe Ihren Vorschlag für einige der Dateien ausprobiert, wenn ich cat files.txt | versuche xargs rm -rf es heißt, die Erlaubnis wurde verweigert, auch im Sudo-Modus, z. B. für / usr / local / bin / pydoc oder / usr / local / bin / idle. Irgendwelche Ideen warum?
212
Für mich funktioniert meistens Folgendes:
Pip installiert haben, zB:
$ easy_install pip
Überprüfen Sie, wie Ihr installiertes Paket aus Pip-Sicht benannt ist:
$ pip freeze
Darin werden die Namen aller Pakete aufgeführt, die Sie installiert haben (und die von pip erkannt wurden). Der Name kann manchmal lang sein, dann verwenden Sie nur den Namen des Pakets, das am und nach angezeigt wird #egg=. In den meisten Fällen können Sie auch den Versionsteil ignorieren (was auch immer folgt ==oder -).
Dann deinstallieren Sie das Paket:
$ pip uninstall package.name.you.have.found
Wenn Sie nach einer Bestätigung zum Entfernen des Pakets gefragt werden, haben Sie Glück und es wird entfernt.
pip erkennt alle Pakete, die von pip installiert wurden. Die meisten über easy_install oder setup.py installierten Pakete werden ebenfalls erkannt. In einigen seltenen Fällen kann dies jedoch fehlschlagen.
Hier ist ein echtes Beispiel aus meinem lokalen Test mit dem ttr.rdstmcunter MS Windows genannten Paket .
Alles, was oben geschrieben steht, gilt trotzdem, es sind jetzt kleine Modifikationen verfügbar.
Installieren Sie pip in Python 2.7.9 und Python 3.4
Neuere Python-Versionen enthalten ein Paket ensurepip, mit dem pip auch offline installiert werden kann:
$ python -m surepip --upgrade
Auf einigen Systemen (wie Debian Jessie) ist dies nicht verfügbar (um zu verhindern, dass die Installation von Systempython unterbrochen wird).
Verwenden von grepoderfind
Die obigen Beispiele setzen voraus, dass Sie grepinstalliert haben. Ich hatte (zu der Zeit, als ich MS Windows auf meinem Computer hatte) eine Reihe von Linux-Dienstprogrammen installiert (inkl. Grep). Verwenden Sie alternativ natives MS Windows findoder ignorieren Sie diese Filterung einfach und suchen Sie den Namen in einer etwas längeren Liste der erkannten Python-Pakete.
Welches Verpackungstool / welche Version verwenden Sie, damit dies funktioniert? ( distutils, distribute, Etc ...)
Ciro Santilli冠状病毒审查六四事件法轮功
1
Ich benutze setuptools. Sie können bitbucket.org/vlcinsky/ttr.aws.utils.s3 überprüfen (was nicht perfekt ist). Wie auch immer, ich bin ziemlich unzufrieden mit der Verwendung von Namespace-Paketen. Manchmal ist der Import ohne sichtbaren Grund unterbrochen. Aber es ist eine andere Geschichte.
Jan Vlcinsky
1
mich selbst korrigieren. Obwohl ich importiere setuptools, benutze ich tatsächlich distribute. Eine weitere Lektion: Wenn Sie mein eigenes Paket von pypi installieren und planen, ein anderes Paket zu entwickeln, das lokal denselben Namespace verwendet$ pip install <the package> , verwenden $ easy_install <the package>Sie es nicht . Andernfalls treten beim Importieren Ihres Entwicklungspakets Konflikte auf.
Jan Vlcinsky
1
Um anderen zu helfen: Da ich kein Root bin, installiere ich alles in meinem Haus. Hier ist was ich getan habe easy_install --user --prefix=$HOME pip. Dann habe ich in meinem PATH Folgendes hinzugefügt : ln -s /home/tflutre/.local/bin/pip ~/bin, ln -s /home/tflutre/.local/bin/pip2.7 ~/binund ln -s /home/tflutre/.local/bin/pip2 ~/bin.
Flutre
3
Dies sollte als Antwort akzeptiert werden, da dies viel einfacher ist und pip normalerweise sowieso mit Python geliefert wird. Es ist einfach in der Eingabeaufforderung / im Terminal zu verwenden - pip uninstall moduleoder python -m pip uninstall modulesollte funktionieren. Sollte auch plattformübergreifend sein, wie es Teil von Python ist.
Edward
81
Die Antwort Nr. 1 hat Probleme:
Funktioniert nicht auf dem Mac.
Wenn eine Datei installiert ist, die Leerzeichen oder andere Sonderzeichen enthält, schlägt der xargsBefehl fehl und löscht alle Dateien / Verzeichnisse, die den einzelnen Wörtern entsprechen.
Das -rIn rm -rfist unnötig und kann im schlimmsten Fall Dinge löschen, die Sie nicht möchten.
Stattdessen für Unix-like:
sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n''\0'< files.txt | xargs -0 sudo rm -f --
Es gibt auch unlösbare Probleme bei der Deinstallation der setup.pyInstallation, die Sie in einem typischen Fall nicht stören. Eine vollständigere Antwort finden Sie auf dieser Wiki-Seite:
Warum hinterlässt du einfach keinen Vorschlag unter dem gestimmten? Beachten Sie, dass es sich bei diesen "schwerwiegenden Problemen" um Eckfälle handelt.
lpapp
17
Ich habe einen Kommentar unter dem Upvoted hinterlassen. Mein Kommentar ist unter einem Link "Weitere Kommentare laden" vergraben, auf den nur sehr wenige Personen klicken. Ich habe auch meine eigene Antwort gegeben, weil ich viel mehr zu sagen hatte, dh. der Link in meiner Antwort. Außerdem wäre Eckfall nicht der erste Begriff, der mir in den Sinn kommt, wenn eine Datei ein Leerzeichen enthält.
Ian Kelling
Für das, was es wert ist, denke ich, dass dies bei Dateinamen, die Zeilenumbrüche enthalten, fehlschlagen wird :) Ob irgendwelche Paketbetreuer so böse sind, hoffe ich, dass ich es nie herausfinde.
Jack O'Connor
2
Zumindest unter OS X Mavericks verfügt xargs nicht über die Option -d. Warum? Weil Apple dich liebt. Auf jeden Fall hat dies die gleichen Auswirkungen wie oben und ist sicher mit Räumen und dergleichen. Es ist jedoch Bash-spezifisch. Nach dem Ausführen der Installation mit --record to files.txt:OIFS=$IFS; IFS=$'\n'; FILES=( $( cat files.txt ) ); IFS=$OIFS; sudo rm -rf "${FILES[@]}"
Joseph Sikorski
2
Einbetten von Variablen innerhalb @IanKelling printf‚s Format - String wird fehlschlagen , wenn die Zeichenfolge zB enthalten geschehen %oder \Zeichen. Geben Sie immer eine Formatzeichenfolge an: printf '%s\0' "$line"(vermeidet auch Echo). Obwohl Sie die Schleife weiter vermeiden können, indem Sie einfachtr '\n' '\0' < files.txt | xargs -0 rm -f
geirha
39
Notieren Sie zuerst die Dateien, die Sie installiert haben. Sie können diesen Befehl wiederholen, auch wenn Sie zuvor Folgendes ausgeführt haben setup.py install:
python setup.py install --record files.txt
Wenn Sie deinstallieren möchten, können Sie einfach:
sudo rm $(cat files.txt)
Dies funktioniert, weil der Befehl rm eine durch Leerzeichen getrennte Liste von Dateien zum Löschen benötigt und Ihr Installationsdatensatz genau eine solche Liste ist.
Gibt es eine Möglichkeit, nicht nur zu überprüfen, ob mein Programm es installiert hat, sondern auch, ob seitdem keine andere Anwendung diese Ressource verwendet hat? Zum Beispiel habe ich ein Tool installiert. Dazu musste ich mehrere Bibliotheken installieren. Möglicherweise waren einige bereits installiert (was bedeutet, dass ich sie bei der Deinstallation nicht entfernen kann), aber ich kann auch nichts entfernen, was andere Anwendungen benötigen nicht installiert, weil meine Bibliothek zuerst installiert hatte ..
Gabrielle
19
Jetzt haben Sie bei Python die Wahl, pipwährend der Installation zu installieren (ich bin unter Windows und zumindest Python unter Windows!). In Anbetracht der Tatsache, dass Sie sich für die Installation pipwährend der Installation von Python entschieden haben (Sie müssen diese nicht auswählen, da dies die Standardeinstellung ist), pipist sie bereits für Sie installiert. Geben Sie dann in der pipEingabeaufforderung, sollten Sie eine Hilfe sehen kommen. Dort finden Sie die erforderlichen Gebrauchsanweisungen. ZB pip listzeigt Ihnen die Liste der installierten Pakete. Sie können verwenden
pip uninstall package_name
um jedes Paket zu deinstallieren, das Sie nicht mehr wollen. Lesen Sie hier mehr (Pip-Dokumentation) .
Der faule Weg: Deinstallieren Sie einfach über das Windows-Installationsmenü (wenn Sie Windows verwenden) oder über den Befehl rpm, sofern Sie es nach dem Erstellen eines Distributionspakets zuerst neu installieren.
Ich weiß nicht, ob es mir gefällt, aber Sie bekommen einen Punkt für orthogales Denken. :)
Lennart Regebro
Um ehrlich zu sein, bin ich mir auch nicht sicher, daher "der faule Weg" ;-) Aber ich dachte, ich würde erwähnen, dass es möglich ist, mehr "Standard" -Installationsprogramme zu erstellen. Es ist seltsam, dass die Datei setup.py keine saubere Möglichkeit zum Entfernen von Paketen bietet.
RedGlyph
1
Für Deinstallationen sind zentralisierte Registrierungen der installierten Pakete und ihrer Dateien erforderlich, und es gibt keine. Es werden derzeit Diskussionen darüber geführt, wie diese Geschichte verbessert werden kann. Möglicherweise wird sie in Python 2.7 / 3.2 oder 2.8 / 3.3 oder so gelöst.
Lennart Regebro
1
@ Lennart: Es wird nicht Python 2.8 geben, zumindest ist das die aktuelle offizielle Aussage
Piotr Owsiak
2
@PiotrOwsiak: Ja, aber das war damals nicht die Aussage. 2.8 war zu diesem Zeitpunkt noch eine Möglichkeit und blieb es bis zur Genehmigung von PEP 404 Ende letzten Jahres, glaube ich.
Lennart Regebro
6
Wechseln Sie in Ihr Python-Paketverzeichnis und entfernen Sie Ihre .egg-Datei, z. B.: In Python 2.5 (Ubuntu): /usr/lib/python2.5/site-packages/
In Python 2.6 (Ubuntu): /usr/local/lib/python2.6/dist-packages/
Funktioniert, es sei denn, die Installation installiert Dateien außerhalb des Pakets, was einige tun, wie setuptools, das installiert wird, und den Befehl easy_install.
Lennart Regebro
3
Wenn ein Paket mit python setup.py wie vom OP angegeben installiert würde, gäbe es normalerweise kein Ei. OTOH, falls es eine gibt, weil easy_install verwendet wurde, besteht die dokumentierte Möglichkeit zum Deinstallieren von Paketen darin, easy_install -m zu verwenden, bevor die Eidatei gelöscht wird. Andernfalls können Eierschalen in der Datei easy-install.pth zurückbleiben.
Ned Deily
5
Nicht genau die Frage beantworten, aber etwas, das mir jeden Tag hilft:
Installieren Sie Ihre Pakete mit
pip install .
Dies bringt das Paket in $HOME/.local. Deinstallieren mit
Viel einfacher zu schreiben als sudo xargs rm -v < install.record.
Poolie
1
Wenn Sie noch Dateien haben, die nach der Neuinstallation eines Pakets gelöscht werden sollen, stellen Sie sicher, dass der Ordner buildebenfalls gelöscht wird. Angenommen, dies pkgist das Paket, das Sie löschen möchten:
Um {virtualenv}/lib/python2.7/site-packages/(wenn Sie virtualenv nicht verwenden, dann {system_dir}/lib/python2.7/dist-packages/)
Entfernen Sie die Ei - Datei (zB distribute-0.6.34-py2.7.egg)
Wenn eine Datei vorhanden ist easy-install.pth, entfernen Sie die entsprechende Zeile (dies sollte ein Pfad zum Quellverzeichnis oder zu einer Eidatei sein).
Ich hatte "python setup.py install" irgendwann in der Vergangenheit versehentlich in meiner globalen Umgebung ausgeführt und hatte große Schwierigkeiten bei der Deinstallation. Diese Lösungen haben nicht geholfen. "pip uninstall" funktionierte nicht mit "Kann 'splunk-appinspect' nicht deinstallieren. Es wurden keine Dateien zum Deinstallieren gefunden." "sudo pip uninstall" funktionierte nicht "Anforderung splunk-appinspect kann nicht deinstalliert werden, nicht installiert". Ich habe versucht, pip zu deinstallieren, den Pip-Cache zu löschen, meine Festplatte nach dem Paket zu durchsuchen usw.
"pip show" führte mich schließlich zu der Lösung, "Location:" zeigte auf ein Verzeichnis, und das Umbenennen dieses Verzeichnisses führte dazu, dass das Paket aus der Liste von pip entfernt wurde. Ich habe das Verzeichnis wieder umbenannt und es wurde nicht erneut in der Liste von pip angezeigt. Jetzt kann ich mein Paket in einer virtuellen Umgebung neu installieren.
Ich hatte python setup.py installeinmal in meinem PyCharm ausgeführt, es installiert alle Pakete in meiner Conda-Basisumgebung. Später, wenn ich alle diese Pakete entfernen möchte, pip uninstallfunktioniert nicht. Ich musste sie manuell aus /anaconda3/lib/python3.7/site-packages löschen :(
Daher sehe ich keinen Grund, warum sie setup.py verwenden, anstatt die Datei require.txt zu schreiben. Die Anforderungsdatei kann zum Installieren von Paketen in einer virtuellen Umgebung verwendet werden und wird nicht mit Systempython-Paketen in Konflikt geraten.
pip uninstall <your_package>
. Siehe stackoverflow.com/questions/1231688/… .It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
sodass dies immer noch ein Problem darstellt.Antworten:
Hinweis: Vermeiden Sie die
python setup.py install
Verwendungpip install .
Sie müssen alle Dateien manuell entfernen und alle anderen von der Installation manuell durchgeführten Vorgänge rückgängig machen.
Wenn Sie die Liste aller Dateien nicht kennen, können Sie sie mit der
--record
Option neu installieren und sich die Liste ansehen, die dadurch erstellt wird.Um eine Liste der installierten Dateien aufzuzeichnen, können Sie Folgendes verwenden:
Sobald Sie deinstallieren möchten, können Sie xargs verwenden, um das Entfernen durchzuführen:
Wenn Sie Windows ausführen, verwenden Sie Powershell:
Löschen Sie dann auch das enthaltende Verzeichnis, zB
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/
aufmacOS
. Es hat keine Dateien, aber Python importiert trotzdem ein leeres Modul:Nach dem Löschen zeigt Python:
quelle
cat files.txt | xargs sudo rm -rf
Für mich funktioniert meistens Folgendes:
Pip installiert haben, zB:
Überprüfen Sie, wie Ihr installiertes Paket aus Pip-Sicht benannt ist:
Darin werden die Namen aller Pakete aufgeführt, die Sie installiert haben (und die von pip erkannt wurden). Der Name kann manchmal lang sein, dann verwenden Sie nur den Namen des Pakets, das am und nach angezeigt wird
#egg=
. In den meisten Fällen können Sie auch den Versionsteil ignorieren (was auch immer folgt==
oder-
).Dann deinstallieren Sie das Paket:
Wenn Sie nach einer Bestätigung zum Entfernen des Pakets gefragt werden, haben Sie Glück und es wird entfernt.
pip erkennt alle Pakete, die von pip installiert wurden. Die meisten über easy_install oder setup.py installierten Pakete werden ebenfalls erkannt. In einigen seltenen Fällen kann dies jedoch fehlschlagen.
Hier ist ein echtes Beispiel aus meinem lokalen Test mit dem
ttr.rdstmc
unter MS Windows genannten Paket .Bearbeiten 2015-05-20
Alles, was oben geschrieben steht, gilt trotzdem, es sind jetzt kleine Modifikationen verfügbar.
Installieren Sie pip in Python 2.7.9 und Python 3.4
Neuere Python-Versionen enthalten ein Paket
ensurepip
, mit dem pip auch offline installiert werden kann:$ python -m surepip --upgrade
Auf einigen Systemen (wie Debian Jessie) ist dies nicht verfügbar (um zu verhindern, dass die Installation von Systempython unterbrochen wird).
Verwenden von
grep
oderfind
Die obigen Beispiele setzen voraus, dass Sie
grep
installiert haben. Ich hatte (zu der Zeit, als ich MS Windows auf meinem Computer hatte) eine Reihe von Linux-Dienstprogrammen installiert (inkl. Grep). Verwenden Sie alternativ natives MS Windowsfind
oder ignorieren Sie diese Filterung einfach und suchen Sie den Namen in einer etwas längeren Liste der erkannten Python-Pakete.quelle
distutils
,distribute
, Etc ...)setuptools
. Sie können bitbucket.org/vlcinsky/ttr.aws.utils.s3 überprüfen (was nicht perfekt ist). Wie auch immer, ich bin ziemlich unzufrieden mit der Verwendung von Namespace-Paketen. Manchmal ist der Import ohne sichtbaren Grund unterbrochen. Aber es ist eine andere Geschichte.setuptools
, benutze ich tatsächlichdistribute
. Eine weitere Lektion: Wenn Sie mein eigenes Paket von pypi installieren und planen, ein anderes Paket zu entwickeln, das lokal denselben Namespace verwendet$ pip install <the package>
, verwenden$ easy_install <the package>
Sie es nicht . Andernfalls treten beim Importieren Ihres Entwicklungspakets Konflikte auf.easy_install --user --prefix=$HOME pip
. Dann habe ich in meinem PATH Folgendes hinzugefügt :ln -s /home/tflutre/.local/bin/pip ~/bin
,ln -s /home/tflutre/.local/bin/pip2.7 ~/bin
undln -s /home/tflutre/.local/bin/pip2 ~/bin
.pip uninstall module
oderpython -m pip uninstall module
sollte funktionieren. Sollte auch plattformübergreifend sein, wie es Teil von Python ist.Die Antwort Nr. 1 hat Probleme:
xargs
Befehl fehl und löscht alle Dateien / Verzeichnisse, die den einzelnen Wörtern entsprechen.-r
Inrm -rf
ist unnötig und kann im schlimmsten Fall Dinge löschen, die Sie nicht möchten.Stattdessen für Unix-like:
Und für Fenster:
Es gibt auch unlösbare Probleme bei der Deinstallation der
setup.py
Installation, die Sie in einem typischen Fall nicht stören. Eine vollständigere Antwort finden Sie auf dieser Wiki-Seite:https://ofswiki.org/wiki/Uninstalling_setup.py_install
quelle
OIFS=$IFS; IFS=$'\n'; FILES=( $( cat files.txt ) ); IFS=$OIFS; sudo rm -rf "${FILES[@]}"
printf
‚s Format - String wird fehlschlagen , wenn die Zeichenfolge zB enthalten geschehen%
oder\
Zeichen. Geben Sie immer eine Formatzeichenfolge an:printf '%s\0' "$line"
(vermeidet auch Echo). Obwohl Sie die Schleife weiter vermeiden können, indem Sie einfachtr '\n' '\0' < files.txt | xargs -0 rm -f
Notieren Sie zuerst die Dateien, die Sie installiert haben. Sie können diesen Befehl wiederholen, auch wenn Sie zuvor Folgendes ausgeführt haben
setup.py install
:Wenn Sie deinstallieren möchten, können Sie einfach:
Dies funktioniert, weil der Befehl rm eine durch Leerzeichen getrennte Liste von Dateien zum Löschen benötigt und Ihr Installationsdatensatz genau eine solche Liste ist.
quelle
Jetzt haben Sie bei Python die Wahl,
pip
während der Installation zu installieren (ich bin unter Windows und zumindest Python unter Windows!). In Anbetracht der Tatsache, dass Sie sich für die Installationpip
während der Installation von Python entschieden haben (Sie müssen diese nicht auswählen, da dies die Standardeinstellung ist),pip
ist sie bereits für Sie installiert. Geben Sie dann in derpip
Eingabeaufforderung, sollten Sie eine Hilfe sehen kommen. Dort finden Sie die erforderlichen Gebrauchsanweisungen. ZBpip list
zeigt Ihnen die Liste der installierten Pakete. Sie können verwendenum jedes Paket zu deinstallieren, das Sie nicht mehr wollen. Lesen Sie hier mehr (Pip-Dokumentation) .
quelle
Der faule Weg: Deinstallieren Sie einfach über das Windows-Installationsmenü (wenn Sie Windows verwenden) oder über den Befehl rpm, sofern Sie es nach dem Erstellen eines Distributionspakets zuerst neu installieren.
Zum Beispiel,
("foo" ist natürlich ein Beispiel).
quelle
Wechseln Sie in Ihr Python-Paketverzeichnis und entfernen Sie Ihre .egg-Datei, z. B.: In Python 2.5 (Ubuntu): /usr/lib/python2.5/site-packages/
In Python 2.6 (Ubuntu): /usr/local/lib/python2.6/dist-packages/
quelle
Nicht genau die Frage beantworten, aber etwas, das mir jeden Tag hilft:
Installieren Sie Ihre Pakete mit
Dies bringt das Paket in
$HOME/.local
. Deinstallieren mitquelle
pip unistall .
hat bei mir nicht funktioniert, aberpip uninstall <package_name>
danke!Wahrscheinlich können Sie dies als Alternative tun: -
1) Holen Sie sich die Python-Version -
-> Mit dem obigen Befehl erhalten Sie die aktuelle Python-Version 2.4.3
2) Holen Sie sich das Installationsverzeichnis von Python -
-> Über den obigen Befehl können Sie das Installationsverzeichnis abrufen, das - /usr/lib/python2.4/site-packages lautet
3) Von hier aus können Sie die Pakete und Python-Egg-Dateien entfernen
Das hat bei mir funktioniert .. Und ich konnte das Paket deinstallieren, was mich beunruhigte :)
quelle
Ich denke, Sie können die Datei setup.py öffnen, den Paketnamen suchen und dann pip bitten, sie zu deinstallieren.
Angenommen, der Name ist in einer 'METADATA'-Variablen verfügbar:
quelle
Die Aufzeichnung der Installationsausgabe und ein wenig Bash-Scripting machen den Trick ganz gut. Folgendes mache ich ...
Und Presto. Deinstalliert.
quelle
sudo xargs rm -v < install.record
.Wenn Sie noch Dateien haben, die nach der Neuinstallation eines Pakets gelöscht werden sollen, stellen Sie sicher, dass der Ordner
build
ebenfalls gelöscht wird. Angenommen, diespkg
ist das Paket, das Sie löschen möchten:Oben arbeiten Sie für Python3 und löschen Sie das Paket und seine * .egg-info-Datei
quelle
Um
{virtualenv}/lib/python2.7/site-packages/
(wenn Sie virtualenv nicht verwenden, dann{system_dir}/lib/python2.7/dist-packages/
)distribute-0.6.34-py2.7.egg
)easy-install.pth
, entfernen Sie die entsprechende Zeile (dies sollte ein Pfad zum Quellverzeichnis oder zu einer Eidatei sein).quelle
Ich hatte "python setup.py install" irgendwann in der Vergangenheit versehentlich in meiner globalen Umgebung ausgeführt und hatte große Schwierigkeiten bei der Deinstallation. Diese Lösungen haben nicht geholfen. "pip uninstall" funktionierte nicht mit "Kann 'splunk-appinspect' nicht deinstallieren. Es wurden keine Dateien zum Deinstallieren gefunden." "sudo pip uninstall" funktionierte nicht "Anforderung splunk-appinspect kann nicht deinstalliert werden, nicht installiert". Ich habe versucht, pip zu deinstallieren, den Pip-Cache zu löschen, meine Festplatte nach dem Paket zu durchsuchen usw.
"pip show" führte mich schließlich zu der Lösung, "Location:" zeigte auf ein Verzeichnis, und das Umbenennen dieses Verzeichnisses führte dazu, dass das Paket aus der Liste von pip entfernt wurde. Ich habe das Verzeichnis wieder umbenannt und es wurde nicht erneut in der Liste von pip angezeigt. Jetzt kann ich mein Paket in einer virtuellen Umgebung neu installieren.
quelle
Ich hatte
python setup.py install
einmal in meinem PyCharm ausgeführt, es installiert alle Pakete in meiner Conda-Basisumgebung. Später, wenn ich alle diese Pakete entfernen möchte,pip uninstall
funktioniert nicht. Ich musste sie manuell aus /anaconda3/lib/python3.7/site-packages löschen :(Daher sehe ich keinen Grund, warum sie setup.py verwenden, anstatt die Datei require.txt zu schreiben. Die Anforderungsdatei kann zum Installieren von Paketen in einer virtuellen Umgebung verwendet werden und wird nicht mit Systempython-Paketen in Konflikt geraten.
quelle
Es ist möglicherweise besser, verwandte Dateien zu entfernen, indem Sie bash verwenden, um Befehle wie die folgenden zu lesen:
quelle